我有一个带有不可见的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;
答案 0 :(得分:1)
使用css类来隐藏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";
}