1

我在页面 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;
            }
        }
     }

但它不行。:-( 请帮我。

4

2 回答 2

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;  
        }
}
于 2013-01-10T07:38:47.943 回答
1

如果网格行具有带有idlblName 的标签,那么您将从行中获取它,您无需再次检查它。

foreach (GridViewRow row in gvName.Rows)
{
    Label lblName = (Label)row.FindControl("lblName");         
    lblName.Text = txtName.Text;            
}

注意:如果您在 thr gridview 中没有行,那么您将无法获得标签中的值。您需要确保它们是网格中的行。

于 2013-01-10T07:36:22.423 回答