获取网格视图中的文本区域值
本文关键字:文本 区域 网格 视图 获取 | 更新日期: 2023-09-27 18:20:17
在GridView的TemplateField内部,我有一个HTML TextArea:
<asp:TemplateField HeaderText="Message">
<ItemTemplate>
<textarea id="txtArStatusMsg" cols="20" rows="2" style="width: 99%"></textarea>
</ItemTemplate>
</asp:TemplateField>
Q: 如何读取GridView的SelectedRow中文本区域的文本?
将runat="server"
添加到文本区域,并在GridView的SelectedRow上调用FindControl("txtArStatusMsg")
。要获取TextAreas
的文本,需要将其强制转换为HtmlTextArea并读取其Value属性。
var text = ((HtmlTextArea)GridView1.SelectedRow.FindControl("txtArStatusMsg")).Value;
在不添加runat="server"
属性之前,不能在服务器端使用/访问html <input/>
标记。最好使用TextBox并将TextMode设置为Multiline。
<asp:TemplateField HeaderText="Message">
<ItemTemplate>
<textarea
id="txtArStatusMsg"
cols="20" rows="2"
runat="server"
style="width: 99%">
</textarea>
</ItemTemplate>
</asp:TemplateField>
或
<asp:TemplateField HeaderText="Message">
<ItemTemplate>
<asp:TextBox id="txt1" runat="server" TextMode="Multiline"/>
<asp:Button id="btn1" runat="server" CommandName="select"/>
</ItemTemplate>
</asp:TemplateField>
在GridView的SelectedIndexChanged
处理程序中编写以下代码
//Cells[0] - 0 indicates the 1st cell of selected row.
TextBox tx=GridView1.SelectedRow.Cells[0].FindControl("txt1") as TextBox;