簡體   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