如何添加AjaxControlToolkit';s复选框列表控件中的“Gravatar Control befor
本文关键字:控件 列表 复选框 befor Control Gravatar 何添加 添加 AjaxControlToolkit | 更新日期: 2023-09-27 18:22:08
我有一个CheckBoxList控件,它包含动态生成的复选框项。此复选框列表将包含用户名。我使用AjaxControlToolkit中的Gravatar控件来允许用户拥有自己的个人资料图片。我想要的是,当将用户名作为文本的复选框添加到CheckBoxList时,还应该在复选框之前或之后添加Gravatar控件,以显示用户的相应显示图片。我想到的另一种方法是使用带有复选框和gravatar的自定义用户控件。但如果有任何其他精简和简单的解决方案可用,请建议我。以下是代码:
<table class="style1">
<tr>
<td align="right" style="padding: 5px" width="25%">
Username/Email:</td>
<td style="padding: 5px">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" CssClass="newButton"
onclick="Button1_Click" Text="Search" />
</td>
</tr>
<tr>
<td align="right" style="padding: 5px" valign="top" width="25%">
Results:</td>
<td style="padding: 5px">
<asp:CheckBoxList ID="CheckBoxList1" runat="server"
onselectedindexchanged="CheckBoxList1_SelectedIndexChanged"
AutoPostBack="True">
</asp:CheckBoxList>
</td>
</tr>
<tr>
<td align="right" style="padding: 5px" width="25%" valign="top">
Selected People:</td>
<td style="padding: 5px">
<asp:ListBox ID="ListBox1" runat="server" Height="149px" Width="260px">
</asp:ListBox>
</td>
</tr>
</table>
正如您所看到的,它还有一个列表框,其中包含从复选框列表中选择的项目。如果可能的话,请给我同样的建议。
Repeater
控件将适用于此。它允许您绑定到数据源,并为项目的显示方式创建模板。
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="act" %>
...
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:CheckBox ID="checkBox" runat="server" />
<act:Gravatar runat="server" ID="gravatar" Email='<%# DataBinder.Eval(Container, "DataItem.useremail")%>' Size="50" Rating="G" DefaultImageBehavior="Identicon" DefaultImage="http://tinyurl.com/3bpsaac" />
<asp:Label ID="userName" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.username")%>'></asp:Label>
<br />
</ItemTemplate>
</asp:Repeater>
我将此Repeater
绑定到以下DataTable
:
System.Data.DataTable GetRepeaterData() {
DataTable dt = new DataTable();
dt.Columns.Add("username", typeof(string));
dt.Columns.Add("useremail", typeof(string));
dt.Rows.Add("user_one", "test@superexpert.com");
dt.Rows.Add("user_two", "test@superexpert.com");
dt.Rows.Add("user_three", "test@superexpert.com");
return dt;
}