2012-01-12 38 views
1

里面里面一个GridView的TemplateField中的我有一个HTML的文本区:获取文本区域价值网格视图

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

问:我怎样才能阅读文本区域的在GridView的SelectedRow的文本?

回答

2

runat="server"添加到textarea,并在GridView的SelectedRow上调用FindControl("txtArStatusMsg")。 要获得TextAreas的文字,您需要将其转换为HtmlTextArea并阅读它的Value属性。在服务器端

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

无法使用/访问HTML <input/>标签之前,您不添加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; 
+0

我会尝试这个的TextMode = “多行” 也,但现在我必须只使用文本区域。 ..thnx .. – Gurvinder 2012-01-12 14:39:42