文本框:数据是否仅在可见时绑定?

textbox: is data bound only when visible?

我有一个带有不可见 TextBox 控件的 gridview,该控件在单击事件上进行数据绑定。另一个单击事件将可见性设置为 true,但 TextBox 随后为空。我可以重新绑定 gridview,但不明白为什么 TextBox 会失去它的价值。这是标准行为吗?

<asp:templatefield HeaderText="NewRate" Visible="false">
    <ItemTemplate>
        <asp:TextBox ID="TXBX_NewRate" runat="server" Text = '<%# Bind("NewRate") %>' width="20px" />
        <asp:Label ID="LabelRequirement" runat="server" Text = '<%# Bind("Requirement") %>'/>
    </ItemTemplate>
</asp:templatefield>

和事件方法:

    protected void CheckedChanged_EditarPlazo(object sender, EventArgs e)
    {
        if (CKBX_NuevoPlazo.Checked == true)
        {
            GridView_ContractFileContent.Columns[11].Visible = true;

使用 css class 来隐藏 GridView 中的列而不是 GridView_ContractFileContent.Columns[11].Visible = false;因为这在回传中失去了价值。

在 aspx 中

<head runat="server">
    <title></title>
    <style type="text/css">
        .hideGridColumn {
            display: none;
        }

        .showGridColumn {
            display: block;
        }
    </style>
</head>

在代码隐藏文件中

  if (CKBX_NuevoPlazo.Checked == true)
            {
                GridView_ContractFileContent.Columns[1].HeaderStyle.CssClass = "showGridColumn";
                GridView_ContractFileContent.Columns[1].ItemStyle.CssClass = "showGridColumn";
            }
            else
            {
                GridView_ContractFileContent.Columns[1].HeaderStyle.CssClass = "hideGridColumn";
                GridView_ContractFileContent.Columns[1].ItemStyle.CssClass = "hideGridColumn";
            }