2015-07-13 92 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

非常感謝 –