当前位置: 代码迷 >> ASP.NET >> gridview编辑状态下templatefield不可见(visible=false)时取不到控件的值解决方法
  详细解决方案

gridview编辑状态下templatefield不可见(visible=false)时取不到控件的值解决方法

热度:11155   发布时间:2013-02-25 00:00:00.0
gridview编辑状态下templatefield不可见(visible=false)时取不到控件的值
页面中有一个gridview,绑定了一个数据表。数据表中有很多字段,而gridview中只需要更新其中部分字段,因此将不需要更新(即保留原有内容)的字段在gridview中设为visible=false,如下面所示:
HTML code
<asp:TemplateField HeaderText="Description" SortExpression="Description"             Visible="False">            <ItemTemplate>                <asp:Label ID="Label14" runat="server" Text='<%# Bind("Description") %>'></asp:Label>            </ItemTemplate>            <EditItemTemplate>                <asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("Description") %>'></asp:TextBox>            </EditItemTemplate>        </asp:TemplateField>


点击更新后,Debug跟踪发现,原本Text属性为"Test"的TextBox12,在更新过程中值为空,即“""”。而若将包含该字段的TemplateField的Visible属性设为True后,则问题解决。这是什么原因 ?如何在TemplateField的Visible为False时仍能获取控件的值,该如何解决?谢谢!

P.S.:嫌麻烦,更新按钮的代码没有改动,使用gridview自动生成的代码,问题在此?

------解决方案--------------------------------------------------------
不要对整个模板列设置不可见,你要做的仅仅是编辑列里设置enabled而已

HTML code
 <EditItemTemplate>                <asp:TextBox ID="TextBox12" runat="server" Text='<%# Bind("Description") %>' [color=#FF0000]enabled=false[/color]></asp:TextBox>            </EditItemTemplate>
  相关解决方案