2013-07-13 11 views
6

Mam kontrolkę CheckBoxList, która zawiera dynamicznie generowane elementy checkbox. Ta lista kontrolna będzie zawierała nazwy użytkownika. Używam kontroli Gravatar z AjaxControlToolkit, aby umożliwić użytkownikom tworzenie własnych zdjęć profilowych. Chcę, aby po dodaniu pola wyboru z nazwą użytkownika jako tekstem do pola wyboru CheckBoxList należy również dodać kontrolkę Gravatar przed lub po polu wyboru, pokazując odpowiedni obraz wyświetlany użytkownikowi. Innym sposobem było uzyskanie niestandardowej kontroli użytkownika z checkboxem i gravatar. Ale jeśli jakieś inne proste i łatwe rozwiązanie jest dostępne, proszę, zasugeruj mi. Poniżej znajduje się kod:Jak dodać AjaxControlToolkit's Gravatar Control przed lub po checkboxie w checkboxlist control

<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> 
         &nbsp;<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> 

Jak widać ma też listbox, który zawiera wybraną pozycję z CheckBoxList. Jeśli to możliwe, zasugeruj mi to samo dla listbox.

Odpowiedz

3

Sterowanie będzie odpowiednie dla tego sterowania Repeater. Umożliwia powiązanie ze źródłem danych i utworzenie szablonu określającego sposób wyświetlania elementów.

<%@ 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> 

mam to Repeater związany z następującym 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", "[email protected]"); 
    dt.Rows.Add("user_two", "[email protected]"); 
    dt.Rows.Add("user_three", "[email protected]"); 
    return dt; 
} 
+0

Dzięki za to. Właściwie to nie było to, czego chciałem, ale to dało mi wskazówkę. Dzięki jeszcze raz. –