C# 带复选框的GridView:如何在ASP.Net中获取选定行
选中复选框时如何获取gridview行值。我在button的click事件中使用此代码,但它不起作用 Html代码: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"
<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获取选中的行值复选框