gridview分页中控制控件显示隐藏的有关问题
gridview分页中控制控件显示隐藏的问题
用gridview做的一个下载列表,其中一列是linkbutton控件,需要根据条件判断是否显示。在不分页的情况下都好;在分页后,首次进入页面正常,但点下一页后,不管在转到哪一页,linkbutton的显示隐藏不受控制了,始终为默认属性了。这该怎么解决?
前台:
后台:
用gridview做的一个下载列表,其中一列是linkbutton控件,需要根据条件判断是否显示。在不分页的情况下都好;在分页后,首次进入页面正常,但点下一页后,不管在转到哪一页,linkbutton的显示隐藏不受控制了,始终为默认属性了。这该怎么解决?
前台:
- HTML code
<table width=100 align=center border="0" cellpadding="0" cellspacing="0" bgcolor="#EBFEFE"> <tr> <td width=100% colspan="2"> <asp:GridView ID="FileView" SkinID=FileList runat="server" Width="600px" AllowPaging="True" ShowFooter="false" PageSize=2 > <PagerSettings Visible="False" /> <Columns> <asp:TemplateField HeaderText="附件列表"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"FILENAME")%> </ItemTemplate> <ItemStyle HorizontalAlign="Left" Width="90%" /> <HeaderStyle Font-Bold="True" Font-Size="10pt" Height="28px" HorizontalAlign="Left" /> </asp:TemplateField> <asp:TemplateField ShowHeader="False"> <ItemTemplate> <asp:HyperLink ID="HyperLink_Down" runat="server" Visible=false NavigateUrl='<%# "Down.aspx?FileID=" + DataBinder.Eval(Container.DataItem,"FILEID")%>'> 下载 </asp:HyperLink> </ItemTemplate> <ItemStyle HorizontalAlign="Left" Width="10%" /> </asp:TemplateField> </Columns> </asp:GridView> </td> </tr> <tr> <td align="center" height="28" valign=middle> <asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="lnkbtnFirst_Click">首页</asp:LinkButton> <asp:LinkButton ID="lnkbtnPrev" runat="server" OnClick="lnkbtnPrev_Click">上一页</asp:LinkButton> <asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">下一页</asp:LinkButton> <asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="lnkbtnLast_Click">尾页</asp:LinkButton> <asp:Label ID="lbCurrentPage" runat="server"></asp:Label> <asp:Label ID="lbPageCount" runat="server"></asp:Label> <asp:Label ID="lbTaskCount" runat="server"></asp:Label> 跳转到第 <asp:DropDownList ID="ddlCurrentPage" runat="server" AutoPostBack="True" OnSelectedIndexChanged="SelectedIndexChanged"> </asp:DropDownList> 页 </td> </tr> </table>
后台:
- C# code
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { DataBind_File(); } DB.strSql = "………………"; InfoTable = DB.GetDataTable(); this.FileView.DataSource = InfoTable.DefaultView; //***************************************************************************** //根据用户和任务判断是否可下载 for (int i = 0; i < this.FileView.Rows.Count; i++) { HyperLink linkDown = (HyperLink)FileView.Rows[i].FindControl("HyperLink_Down"); if (InfoTable.Rows[0]["CURSTEP"].ToString() == "42") { linkDown.Visible = true; } } } private void DataBind_File() { DB.strSql = "……………………"; InfoTable = DB.GetDataTable(); this.FileView.DataSource = InfoTable.DefaultView; this.FileView.DataBind(); lbCurrentPage.Text = "第" + (FileView.PageIndex + 1).ToString() + "页"; lbPageCount.Text = "共" + FileView.PageCount.ToString() + "页"; lbTaskCount.Text = "总共" + InfoTable.Rows.Count.ToString() + "项"; if (InfoTable.Rows.Count == 0) { lnkbtnFirst.Visible = false; lnkbtnPrev.Visible = false; lnkbtnNext.Visible = false; lnkbtnLast.Visible = false; lbCurrentPage.Visible = false; lbPageCount.Visible = false; } else if (FileView.PageCount == 1) { lnkbtnFirst.Visible = false; lnkbtnPrev.Visible = false; lnkbtnNext.Visible = false; lnkbtnLast.Visible = false; } this.ddlCurrentPage.Items.Clear(); for (int i = 1; i <= this.FileView.PageCount; i++) { this.ddlCurrentPage.Items.Add(i.ToString()); } this.ddlCurrentPage.SelectedIndex = this.FileView.PageIndex; } protected void SelectedIndexChanged(object sender, EventArgs e) { this.FileView.PageIndex = this.ddlCurrentPage.SelectedIndex; DataBind_File(); } protected void lnkbtnFirst_Click(object sender, EventArgs e) { this.FileView.PageIndex = 0; DataBind_File(); } protected void lnkbtnPrev_Click(object sender, EventArgs e) { if (this.FileView.PageIndex > 0) { this.FileView.PageIndex = this.FileView.PageIndex - 1; DataBind_File(); } } protected void lnkbtnNext_Click(object sender, EventArgs e) { if (this.FileView.PageIndex < this.FileView.PageCount) { this.FileView.PageIndex = this.FileView.PageIndex + 1; DataBind_File(); } } protected void lnkbtnLast_Click(object sender, EventArgs e) { this.FileView.PageIndex = this.FileView.PageCount; DataBind_File(); }