获取网格视图中的文本区域值

本文关键字:文本 区域 网格 视图 获取 | 更新日期: 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;