【发布时间】:2016-12-06 16:23:19
【问题描述】:
您好,我有一个中继器,它会将数据显示为表格,每行都有复选框,所以我想在单击按钮时显示选中的行数据。
.aspx代码:
<asp:Repeater ID="rptItems" runat="server">
<HeaderTemplate>
<table class="table table-bordered table-hover table-responsive table-striped table-condensed">
<tr>
<th> </th>
<th>Goods Desc</th>
<th>Balance Units</th>
<th>Exit Units</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><asp:CheckBox ID="cbItem" runat="server" /></td>
<td><%#Eval("ItemDesc") %></td>
<td><%#Eval("InvoicBalanceUnits") %></td>
<td><asp:TextBox ID="txtExitUnits" runat="server" ></asp:TextBox>
<asp:RegularExpressionValidator ID="revUnits" runat="server" Display="Dynamic" ControlToValidate="txtExitUnits" ValidationExpression="^\d+$" ErrorMessage="Please, insert a number." CssClass="text-danger"></asp:RegularExpressionValidator>
<asp:RequiredFieldValidator ID="rfvUnits" runat="server" Display="Dynamic" ControlToValidate="txtExitUnits" ErrorMessage="Insert number of units." CssClass="text-danger"></asp:RequiredFieldValidator>
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
后面的代码:
protected void btnExit_Click(object sender, EventArgs e)
{
List<RepeaterItem> selectedItems = rptItems.Items.Cast<RepeaterItem>().Where(x => ((CheckBox)x.FindControl("cbItem")).Checked).ToList();
Repeater1.DataSource = selectedItems;
Repeater1.DataBind();
}
Repeater1 将包含通过 :selectedItems 选择的数据
这是中继器1
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table class="table table-bordered table-hover table-responsive table-striped table-condensed">
<tr>
<th>Goods Desc</th>
<th>Balance Units</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("ItemDesc") %></td>
<td><%#Eval("InvoicBalanceUnits") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
当我运行代码时,它给了我一个错误,“ItemDesc”在repeater1 中不存在,有什么问题吗?
【问题讨论】:
-
@Phill 这有什么问题,还是有其他解决方案?
-
@Phill 所以应该删除所有现有的 Web 窗体项目?搞笑评论
-
您无法将 List
绑定到 Repeater1,因为您正在尝试这样做。 RepeaterItem 类没有 ItemDesc 属性。在按钮上单击创建与 rptItems 数据源相同类型的集合,然后它将起作用。 -
如何在中继器中指定选中的复选框行:rptItems @j.v.
标签: c# jquery asp.net repeater