分页显示页使用GridView调整【显示隐藏】列没有即时更新的问题.docx

 

在分页显示的页面,使用gridview显示分页之后的数据,数据源是datatable,开始的时候有的列使用的绑定列,直接绑定datatable的列名,例如:<asp:BoundField DataField="zw" HeaderText ="职务" />

因为要用户可以调整显示的列,我就做了一个checkboxlist,用户可以选择显示的列,然后我在绑定数据gridview.databind()之后,根据checkboxlist的选中列,显示和隐藏gridview的列,选中列的序号先保存在一个hiddenfield.Value中。

刚开始用<asp:BoundField DataField="zw" HeaderText ="职务" />的时候,选中一个绑定列作为显示列,点击【确定】之后,虽然这个列被设置了this.gvStudent.Columns[i].Visible = true;,但是第一次点击【确定】,这个列的值是空白的,什么都没有,再次点击【确定】,这个列的值就出来了,目前还不知道原因。

后来经过仔细的调试,一个一个列的选择,看看那些列会出现这个问题。结果是,如果使用的是绑定列绑定数据,就会出现这个问题;如果使用的是模板列,就不会出现这个问题。

然后将绑定列都改为模板列,<asp:TemplateField HeaderText="职务">

            <EditItemTemplate>

                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Eval("zw") %>'></asp:TextBox>

            </EditItemTemplate>

            <ItemTemplate>

                <asp:Label ID="Label8" runat="server" Text='<%# Eval("zw") %>'></asp:Label>

            </ItemTemplate>

            <ControlStyle CssClass="StudentDetailsTableDataControl4" />

            <ItemStyle CssClass="StudentDetailsTableDataItem4" />

        </asp:TemplateField>

,这个问题就被解决了,目前不知道为什么。

你可能感兴趣的:(asp)