无法访问gridview中TextArea中的文本

时间:2011-12-29 01:57:10

标签: c# asp.net visual-studio visual-studio-2010

<ItemTemplate>
<textarea ID="TextArea1" TextMode="multiline" runat="server" cols="20" name="S1" rows="2">         </textarea><br />
<asp:Button ID="Button1" runat="server" CommandName = "comment" Text = "Comment"/>
</ItemTemplate>

 SqlParameter par1 = new SqlParameter("@txt", SqlDbType.VarChar);
        par1.Direction = ParameterDirection.Input;
        par1.Value = Request.Form["TextArea1"];
        com.Parameters.Add(par1);

我无法在textArea中的gridview中获取该文字。我只是无法从后面的代码访问它。

我想将textArea中的文字分配给变量但我无法访问textArea

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

是的,几个星期前我有这个(几乎)完全相同的问题,并在此解决了这个问题:Can't access HyperLinkField text in a GridView

我想出来的方式是,我调试了我的代码并检查了即时窗口中的值。您需要在代码中的位置设置一个断点,在此处迭代行,然后检查您的值(即时窗口),如下所示:

?myGridView.Rows[intRowIndex].Cells[0].Controls[0].Text

当您实际分配它时,您可能需要将其强制转换才能使其正常工作:

par1.Value = ((TextBox)myGridView.Rows[intRowIndex].Cells[0].Controls[0]).Text;

答案 1 :(得分:2)

我有一个示例gridview,它可能对您有所帮助。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowCommand="GridView1_RowCommand" 
AlternatingRowStyle-BackColor="#006699"  
    AlternatingRowStyle-ForeColor="#FFFFFF" onrowupdating="GridView1_RowUpdating">
<Columns >

<asp:BoundField HeaderText="Name" DataField="uname" />
<asp:BoundField HeaderText="Pass" DataField="upass"/>
<asp:TemplateField>
<HeaderTemplate>Active</HeaderTemplate>
<ItemTemplate >
<asp:TextBox ID="TextArea1" runat="server" TextMode="multiline" Text='<%#Eval("active")%>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
 <asp:ButtonField CommandName="comment" Text="comment" />
</Columns>
</asp:GridView>

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "comment")
  {
    string uname = "";
    int index = Convert.ToInt32(e.CommandArgument);
    GridViewRow row = GridView1.Rows[index];
    TextBox txtbox1_val = (TextBox)row.FindControl("TextArea1");
    uname = Server.HtmlDecode(row.Cells[1].Text.ToString());
    //write code here
  }
}