如何在GridView中绑定隐藏柱



我将gridview1绑定到sqldatasource1:

   <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString='<%$ ConnectionStrings:ShiftScheduleConnectionString %>' DeleteCommand="DELETE FROM [Example] WHERE [ID] = @ID" InsertCommand="INSERT INTO [Example] ([AssociateName], [Login], [Logout], [Home_Login], [Home_Logout]) VALUES (@AssociateName, @Login, @Logout, @Home_Login, @Home_Logout)" SelectCommand="SELECT * FROM [Example]" UpdateCommand="UPDATE [Example] SET [AssociateName] = @AssociateName, [Login] = @Login, [Logout] = @Logout, [Home_Login] = @Home_Login, [Home_Logout] = @Home_Logout WHERE [ID] = @ID">
        <DeleteParameters>
            <asp:Parameter Name="ID" Type="Int32"></asp:Parameter>
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="AssociateName" Type="String"></asp:Parameter>
            <asp:Parameter Name="Login" Type="String"></asp:Parameter>
            <asp:Parameter Name="Logout" Type="String"></asp:Parameter>
            <asp:Parameter Name="Home_Login" Type="String"></asp:Parameter>
            <asp:Parameter Name="Home_Logout" Type="String"></asp:Parameter>
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="AssociateName" Type="String"></asp:Parameter>
            <asp:Parameter Name="Login" Type="String"></asp:Parameter>
            <asp:Parameter Name="Logout" Type="String"></asp:Parameter>
            <asp:Parameter Name="Home_Login" Type="String"></asp:Parameter>
            <asp:Parameter Name="Home_Logout" Type="String"></asp:Parameter>
            <asp:Parameter Name="ID" Type="Int32"></asp:Parameter>
        </UpdateParameters>
    </asp:SqlDataSource>
    <asp:GridView ID="GridView1" OnRowUpdating="GridView1_RowUpdating" OnRowDataBound="GridView1_RowDataBound" OnRowEditing="GridView1_RowEditing" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:CommandField ShowEditButton="True"></asp:CommandField>
            <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" InsertVisible="False" SortExpression="ID"></asp:BoundField>
            <asp:BoundField DataField="AssociateName" HeaderText="AssociateName" SortExpression="AssociateName"></asp:BoundField>
            <asp:BoundField DataField="Login" HeaderText="Login" SortExpression="Login"></asp:BoundField>
            <asp:BoundField DataField="Logout" HeaderText="Logout" SortExpression="Logout"></asp:BoundField>
            <asp:BoundField DataField="Home_Login" HeaderText="Home_Login" SortExpression="Home_Login"></asp:BoundField>
            <asp:BoundField DataField="Home_Logout" HeaderText="Home_Logout" SortExpression="Home_Logout"></asp:BoundField>
        </Columns>
    </asp:GridView>

单击按钮后,应该看不见列。

  protected void Button1_Click(object sender, EventArgs e)
{
    GridView1.Columns[2].Visible = false;
}

这很好..但是在编辑和更新GridView中的任何数据后,隐藏的列(AssociateName(没有绑定并显示银行值。是否有任何解决方案也可以更新隐藏的列。

它发生了,因为您可能是在页面重新加载后进行的,因此元素状态丢失了列可见状态并使用ASPX页面中的可见属性(在这种情况下是visible="true",因为它被省略(。

要修复它,您必须更改重新加载页面的方式,以免丢失状态或根据所需的规则设置visible="false"

最新更新