2015-07-13 119 views
0

我想为电话簿创建字母列表(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

添加一个单击处理程序到你的BulletedList中,并转发其与名字用的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,否则你不能这样做。

+0

你知道吗?我可以使用Java脚本吗? –

+0

非常感谢 –