<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
有什么想法吗?
答案 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
}
}