C# 带复选框的GridView:如何在ASP.Net中获取选定行

C# 带复选框的GridView:如何在ASP.Net中获取选定行,c#,asp.net,gridview,C#,Asp.net,Gridview,选中复选框时如何获取gridview行值。我在button的click事件中使用此代码,但它不起作用 Html代码: <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%" DataKeyNames="ReportId" OnRowDataBound="GridView2_OnRowDataBound" ForeColor="#333333"

选中复选框时如何获取gridview行值。我在button的click事件中使用此代码,但它不起作用

Html代码:

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%"
        DataKeyNames="ReportId" OnRowDataBound="GridView2_OnRowDataBound" ForeColor="#333333"
        PageSize="5" Style="text-align: center">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="CheckBoxG1" runat="server" />
                </ItemTemplate>

我看不出您是如何绑定数据的,按钮的位置在哪里。这是工作样本

<asp:Button Text="text" runat="server" OnClick="Unnamed_Click" />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ReportId" Width="100%"
            ForeColor="#333333" PageSize="5" Style="text-align: center">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBoxG1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            GridView1.DataSource = new RowModel[]
            {
                new RowModel { ReportId = "1" },
                new RowModel { ReportId = "2" },
                new RowModel { ReportId = "3" }
            };

            GridView1.DataBind();
        }
    }

    protected void Unnamed_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                CheckBox CheckRow = (row.Cells[0].FindControl("CheckBoxG1") as CheckBox);
                if (CheckRow.Checked)
                {

                }
            }
        }
    }

public class RowModel
{
    public string ReportId { get; set; }
}

受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
GridView1.DataSource=新的RowModel[]
{
新的行模型{ReportId=“1”},
新的行模型{ReportId=“2”},
新的行模型{ReportId=“3”}
};
GridView1.DataBind();
}
}
受保护的未命名无效\u单击(对象发送者,事件参数e)
{
foreach(GridView1.Rows中的GridViewRow行)
{
if(row.RowType==DataControlRowType.DataRow)
{
复选框CheckRow=(row.Cells[0].FindControl(“CheckBoxG1”)作为复选框);
if(CheckRow.Checked)
{
}
}
}
}
公共类模型
{
公共字符串ReportId{get;set;}
}

我看不出您如何绑定数据以及按钮的位置。这是工作样本

<asp:Button Text="text" runat="server" OnClick="Unnamed_Click" />
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ReportId" Width="100%"
            ForeColor="#333333" PageSize="5" Style="text-align: center">
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:CheckBox ID="CheckBoxG1" runat="server" />
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            GridView1.DataSource = new RowModel[]
            {
                new RowModel { ReportId = "1" },
                new RowModel { ReportId = "2" },
                new RowModel { ReportId = "3" }
            };

            GridView1.DataBind();
        }
    }

    protected void Unnamed_Click(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            if (row.RowType == DataControlRowType.DataRow)
            {
                CheckBox CheckRow = (row.Cells[0].FindControl("CheckBoxG1") as CheckBox);
                if (CheckRow.Checked)
                {

                }
            }
        }
    }

public class RowModel
{
    public string ReportId { get; set; }
}

受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
GridView1.DataSource=新的RowModel[]
{
新的行模型{ReportId=“1”},
新的行模型{ReportId=“2”},
新的行模型{ReportId=“3”}
};
GridView1.DataBind();
}
}
受保护的未命名无效\u单击(对象发送者,事件参数e)
{
foreach(GridView1.Rows中的GridViewRow行)
{
if(row.RowType==DataControlRowType.DataRow)
{
复选框CheckRow=(row.Cells[0].FindControl(“CheckBoxG1”)作为复选框);
if(CheckRow.Checked)
{
}
}
}
}
公共类模型
{
公共字符串ReportId{get;set;}
}

在我的示例代码中,在绑定GRIDVIEW时,我考虑手动数据,因为您没有指定如何通过数据库绑定GRIDVIEW,但它应该在两种方法中都有效。 我的HTML代码


从Asp.net中的Gridview获取选中的行值复选框


在我的示例代码中,在绑定GRIDVIEW时,我考虑手动数据,因为您没有指定如何通过数据库绑定GRIDVIEW,但它应该在两种方法中都有效。 我的HTML代码


从Asp.net中的Gridview获取选中的行值复选框