繁体   English   中英

如何在Gridview中绑定隐藏列

[英]How to bind the hiding columns in 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属性(在这种情况下,由于省略了它,所以它是visible="true" )。

要解决此问题,您必须更改重新加载页面的方式,以使其不会丢失状态,或者也根据您想要的规则在PageLoad方法中设置visible="false"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM