页面中有一个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>