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

时间:2012-01-12 14:15:26

标签: c# asp.net gridview

在GridView TemplateField内部我有一个HTML-TextArea:

<asp:TemplateField HeaderText="Message">
   <ItemTemplate>
      <textarea id="txtArStatusMsg" cols="20" rows="2" style="width: 99%"></textarea>
   </ItemTemplate>
</asp:TemplateField>

问:如何阅读GridView选定行中文本区域的文本?

2 个答案:

答案 0 :(得分:2)

runat="server"添加到textarea并在GridView的SelectedRow上调用FindControl("txtArStatusMsg")。 要获取TextAreas的文字,您需要将其投放到HtmlTextArea并阅读Value属性。

var text = ((HtmlTextArea)GridView1.SelectedRow.FindControl("txtArStatusMsg")).Value;

答案 1 :(得分:1)

在您不添加<input/>属性之前,您无法在服务器端使用/访问html runat="server"标记。最好使用TextBox并设置TextMode = Multiline。

<asp:TemplateField HeaderText="Message">
   <ItemTemplate>
      <textarea 
                id="txtArStatusMsg" 
                cols="20" rows="2" 
                runat="server"
                style="width: 99%">
      </textarea>
   </ItemTemplate>
</asp:TemplateField>

OR

 <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;