我希望当我点击按钮复选框时,我会获得行中的数据键值复选框。任何人都有想法
<asp:ListView ID="rlv_CouponCode" runat="server" DataKeyNames="ID" DataSourceID="sds_CouponCode" ItemPlaceholderID="itemPlace">
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="Checkbox1" runat="server" />
</td>
<td>
<asp:TextBox Enabled="false" ID="Checkbox" runat="server"
Text='<%#Eval("Code") %>' />
</td>
<td>
<asp:TextBox Enabled="false" ID="NameLabel" runat="server"
Text='<%#Eval("Discount") %>' />
</td>
</tr>
</ItemTemplate>
这里我的代码背后是Button1:
protected void Button1_Click(object sender, EventArgs e)
{
foreach (ListViewItem item in rlv_CouponCode.Items)
{
CheckBox cb = (CheckBox)item.FindControl("Checkbox1");
if (cb.Checked)
{
//
}
}
}
答案 0 :(得分:0)
为您的复选框提供一个ID,该ID是其显示的记录的ID。这样,每个复选框都有一个唯一的ID,您可以使用它来处理数据。例如,如果您的数据有CouponID
,那么:
<asp:CheckBox ID='<%#Eval("CouponID") %>' runat="server" />
在服务器端,使用该ID获取它,看看是否已经检查过。
答案 1 :(得分:0)
您已设置DataKeyNames
,因此您可以访问这些内容。
for (int i = 0; i < rlv_CouponCode.Items.Count; i++)
{
CheckBox cb = (CheckBox)rlv_CouponCode.Items[i].FindControl("Checkbox1");
if (cb.Checked)
{
int id = Convert.ToInt32(rlv_CouponCode.DataKeys[i].Values[0]);
}
}