1

ページaspxにグリッドビューコントロールとテキストボックス+ボタンコントロールがあります。

ボタンをクリックしてテキストボックスの値をグリッドビューに渡したい。

<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;            
}

:グリッドビューにまだ行がない場合は、ラベルの値を取得できません。それらがグリッド内の行であることを確認する必要があります。

于 2013-01-10T07:36:22.423 に答える