我有listview与数据库。我在每行都有复选框,所以我希望用户可以选中带复选框的特定行。选定的ID应该解析到另一个页面&在另一个页面上绑定该ID的列表视图。下面的代码我尝试从page1 listview中选择行,但我不知道如何将其解析到另一个页面&绑定所选行的列表视图。
List<string> ListItems = new List<string>();
foreach (void el_loopVariable in consignements.Items) {
el = el_loopVariable;
foreach (void item_loopVariable in el.Controls) {
item = item_loopVariable;
if (item is CheckBox) {
if (((CheckBox)item).Checked == true) {
ListItems.Add(((CheckBox)item).ToolTip);
}
}
}
}
<asp:ListView ID="consignements" runat="server" DataKeyNames="ID">
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="chk" runat="server" ToolTip='<%# Eval("ID") %>' /></td>
<td><asp:HyperLink ID="bookingID" runat="server" Text='<%# Eval("booking_ID") %>'></asp:HyperLink></td>
<td><%# Eval("DateOfBooking", "{0:MMM dd, yyyy}") %></td>
<td><%# Eval("consigner") %></td>
<td><%# Eval("consignee") %></td>
<td><%# Eval("origin") %></td>
<td><asp:Label ID="mode" runat="server" ToolTip='<%# Eval("mode") %>'></asp:Label></td>
<td><%# Eval("destination") %></td>
<td><%# Eval("payee") %></td>
<td><%# Eval("quantity") %></td>
<td><%# Eval("shipper") %></td>
<td><%# Eval("pod") %></td>
<td style="text-align:right"><%# Eval("refInvoiceNo") %></td>
</tr>
</ItemTemplate>
</asp:ListView>
答案 0 :(得分:0)
首先,将Label添加到ListView,将ID作为Text绑定到它,并将Visibility设置为False。您可以使用它将ID传递回代码。
<asp:Label ID="Label1" runat="server" Text='<%# Eval("ID") %>' Visible="false"></asp:Label>
在后面的代码中,您可以循环所有ListViewDataItems并转换控件。
protected void Button1_Click(object sender, EventArgs e)
{
List<string> ListItems = new List<string>();
foreach (ListViewDataItem item in consignements.Items)
{
CheckBox checkBox = item.FindControl("chk") as CheckBox;
Label label = item.FindControl("Label1") as Label;
if (checkBox.Checked == true)
{
ListItems.Add(label.Text);
}
}
}