我在页面aspx中有gridview控件和文本框+按钮控件。
我希望通过点击按钮将文本框值传递给gridview。
<asp:GridView ID="gvName" runat="server" ViewStateMode="Enabled">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblName" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
并使用此代码:
protected void btnAddName_Click(object sender, ImageClickEventArgs e)
{
foreach (GridViewRow row in gvName.Rows)
{
if ((Label)row.FindControl("lblName") is Label)
{
((Label)row.FindControl("lblName")).Text = txtName.Text;
}
}
}
但不行。 :-(请帮帮我。
答案 0 :(得分:3)
Create a rowdatabound command and place the below code.
protected void gvName_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label lblName = (Label)row.FindControl("lblName");
lblName.Text = txtName.Text;
}
}
答案 1 :(得分:1)
如果网格行的标签带有id
lblName,那么您将从行中获取它,而不需要再次检查它。
foreach (GridViewRow row in gvName.Rows)
{
Label lblName = (Label)row.FindControl("lblName");
lblName.Text = txtName.Text;
}
注意:如果您在thr gridview中没有行,那么您将无法获得标签中的值。您需要确保它们是网格中的行。