<asp:CheckBox ID="chkBox1" runat="server" Text="1" />
<asp:CheckBox ID="chkBox2" runat="server" Text="2" />
我有两个复选框,基于选择我需要运行查询并绑定到转发器控件。
在Repeater Control中:
<asp:Repeater runat="server" ID="Repeater1">
<HeaderTemplate >
<table class="list_table" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<th>1</th>
<th>2</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td><%=CheckBox1.Checked ? Eval("1") : "" %></td>
<td><%=CheckBox2.Checked ? Eval("2") : "" %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
AVD建议我已经改变了我的编码,如果条件工作正常,但我需要将数据从数据库绑定到转发器控件。
答案 0 :(得分:3)
你可以尝试,
<ItemTemplate>
<tr>
<td><%=CheckBox1.Checked ? "1" : "" %></td>
<td><%=CheckBox2.Checked ? "2" : "" %></td>
</tr>
</ItemTemplate>
编辑:
@Prince Antony G:如果我选择checkbox1然后运行查询 - 从table1中选择1;或者如果我选择checkbox2然后运行查询 - 从表2中选择2;并将数据绑定到我的转发器控件(这两个表都有不同的字段)
您无法将不同的数据源绑定到 DataControl ,因为某些绑定表达式(列)在该案例的 中不可用(找到)。< / p>
Page1.aspx标记
<div>
<asp:MultiView ID="MultiView1" runat="server">
<asp:View ID="View1" runat="server">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<!--Bind the result from first table -->
</ItemTemplate>
</asp:Repeater>
</asp:View>
<asp:View ID="View2" runat="server">
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<!--Bind the result from second table -->
</ItemTemplate>
</asp:Repeater>
</asp:View>
</asp:MultiView>
</div>
Page1.aspx.cs - 背后的代码
protected void BindResult(object sender, EventArgs e)
{
CheckBox check = sender as CheckBox;
switch (check.Text)
{
case "1":
/*
* 1. Execute - Select * from Table1
* 2. Bind the DataSource to Repeater1
*/
/* Shows the first View*/
MultiView1.ActiveViewIndex = 0;
break;
case "2":
/*
* 1. Execute - Select * from Table2
* 2. Bind the DataSource to Repeater2
*/
/* Shows the second View*/
MultiView1.ActiveViewIndex = 1;
break;
}
}