1

次のように定義されたグリッドビューがあります

<asp:GridView ID="gv1" runat="server" AutoPostBack="true" onselectedindexchanged="gv1_SelectedIndexChanged">
     <Columns>
        <asp:TemplateField>
           <ItemTemplate>
                <asp:CheckBox ID="chk1" runat="server" />
                <asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" ReadOnly="true" />
           </ItemTemplate>
        </asp:TemplateField>
     </Columns>
</asp:GridView>

コードは次のように処理されます。

protected void gv1_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach(GridViewRow row in gv1.Rows)
    {
       CheckBox check1 = (CheckBox)row.FindControl("chk1");
       if(check1 != null && check1.Checked)
       {
           label1.Text = row.Cells[1].Text;
       }
    }
}

目的の列はインデックス 1 にあります

ただし、値は取得されません。

4

3 に答える 3

3
label1.Text = row.Cells[1].Value.ToString()
于 2013-08-07T17:35:00.873 に答える
0

以下の行を試してください

var temp = ot_approval_grid.DataKeys[GridView.RowIndex].Value;
//ot_approval_grid is the id of grid view

foreach (GridViewRow GridView in ot_approval_grid.Rows)
{
    CheckBox isapplicable = (CheckBox)GridView.FindControl("chkrow");
    if (isapplicable != null && isapplicable.Checked)
    {
        //var temp = GridView.Cells["OTApplicationID"];
        var temp = ot_approval_grid.DataKeys[GridView.RowIndex].Value;
    }
}
于 2016-03-07T12:09:43.697 に答える