我有一个中继器来显示我的数据。此中继器显示 2 个字段,其中一个字段是复选框控件,另一个字段是标签。
现在,当复选框被选中时,我如何理解标签的文本?
我想在 CheckBoxes 被检查的每一行中查看标签文本。
我该怎么办?
我使用 LINQtoSQL 从数据库中获取和设置数据
我有一个中继器来显示我的数据。此中继器显示 2 个字段,其中一个字段是复选框控件,另一个字段是标签。
现在,当复选框被选中时,我如何理解标签的文本?
我想在 CheckBoxes 被检查的每一行中查看标签文本。
我该怎么办?
我使用 LINQtoSQL 从数据库中获取和设置数据
在回发时,您需要遍历中继器的每一行,然后取出复选框控件。然后您可以访问它的 .Checked 和 .Text 属性。如果是 .Checked,则将其添加到列表或数组中。如果需要我可以详细说明..
<asp:Repeater ID="rptX" runat="server">
<ItemTemplate>
<asp:Label ID="lblX" runat="server" Visible='<%# Eval("IsChecked") %>' />
<asp:CheckBox ID="chkX" runat="server" Checked='<%# Eval("IsChecked") %>' />
</ItemTemplate>
</asp:Repeater>
分配数据时的代码
rptX.DataSource = SomeIEnumerableFromLinq; // which has a bool field called IsChecked
rptX.DataBind();
页...
<asp:CheckBox ID="chkBoxID" runat="server" OnCommand="doSomething_Checked" CommandArgument="<%# Some Binding Information%>"
CommandName="NameForArgument">
</asp:CheckBox>
代码背后...
protected void doSomething_Checked(object sender, CommandEventArgs e) {
CheckBox ctrl = (CheckBox)sender;
RepeaterItem rpItem = ctrl.NamingContainer as RepeaterItem;
if (rpItem != null) {
CheckBox chkBox = (LinkButton)rpItem.FindControl("chkBoxID");
chkBox.DoSomethingHere...
}
}