首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

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

2012-05-13 
gridview编辑状态下templatefield不可见(visiblefalse)时取不到控件的值页面中有一个gridview,绑定了一个

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> 

热点排行