[英]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.