我想为电话簿创建字母列表(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>
答案 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设置为LinkButton,否则您无法执行此操作。