创建列表和选择列表值

时间:2015-07-13 10:48:31

标签: c# asp.net

我想为电话簿创建字母列表(A B C D ...),我想从列表中选择例如A.我怎样才能做到这一点。 我想在Repeater中看到(名字的开头)。例如,如果我选择M,我想在转发器中看到Murat,Marc,Maria等。

C#:我尝试过使用BulletedList,但我不能。

char[] alpha = "ABCÇDEFGHIİJKLMNOÖPRSŞTUÜVYZ".ToCharArray();


for (int i = 0; i <alpha.Length; i++)
{                
   ListItem listItem = new ListItem(Convert.ToString(alpha[i]));
   listItem.Attributes.Add("value", Convert.ToString(i));
   telList.Items.Add(listItem);
}
Repeater:
<asp:Repeater runat="server" ID="rptTable">
<HeaderTemplate>
   <table title="TELEPHONEBOOK" id="table" style="float: left" class="table table-striped">
     <thead>
        <tr>
          <th>Name</th>
          <th>Surname</th>
          <th>Phone</th>
          <th>Mobile</th>
          <th>Gender</th>
        </tr>
     </thead>
 </HeaderTemplate>
 <ItemTemplate>
    <tr runat="server" id="trId">
      <td><%#Eval("Name")%></td>
      <td><%#Eval("Sur_Name")%></td>
      <td><%#Eval("Telephone1")%></td>
      <td><%#Eval("Mobile1")%></td>
      <td><%#Eval("Gender")%></td>
      <td><asp:ImageButton runat="server" CommandArgument='<%#Eval("Id")%>' CommandName="Upd" ImageUrl="~/Images/edit-icon.png" Height="25px" Width="25px" ID="btnUpdate" OnClick="btnUpdate_Click" /></td>
      <td><asp:ImageButton runat="server" CommandArgument='<%#Eval("Id")%>' CommandName="Del" ImageUrl="~/Images/sprite.png" Height="25px" Width="25px" ID="btnDelete" OnClientClick="Delete" CssClass="opener" ToolTip="dialog" OnClick="btnDelete_Click" /></td>
     /*<%--<td><asp:ImageButton runat="server"  CommandArgument='<%#Eval("Id")%>' CommandName="Add" ImageUrl="~/Images/add.png" Height="25px" Width="25px"   /></td>--%>*/
    </tr>
  </ItemTemplate>
  <FooterTemplate>
  </FooterTemplate>
 </table>

1 个答案:

答案 0 :(得分:1)

向BulletedList添加一个单击处理程序,并将转发器与FirstName以BulletedList的单击值开头的项绑定。例如:

protected void telList_OnClick(object sender, BulletedListEventArgs e)
{
    var contacts = new List<string> { "aa", "ab", "cccc" };
    char clickeckChar = "ABCÇDEFGHIİJKLMNOÖPRSŞTUÜVYZ"[e.Index];

    rptTable.DataSource = 
        contacts
        .Where(contact => contact.ToUpper().StartsWith(clickeckChar.ToString().ToUpper()))
        .ToList();
    rptTable.DataBind();
}

另外,我不知道你从哪里获取联系人,所以我只是为了这个例子而创建了一个字符串列表。每次单击来自BulltedList的链接时,将根据单击的字母过滤联系人数据,并再次绑定转发器。您的BulletedList必须将其DisplayMode设置为LinkBut​​ton,否则您无法执行此操作。