如何在列表中添加缺失的字母

时间:2011-06-04 20:04:06

标签: asp.net

我有一个a-z列表,我正在生成一个显示如下内容的栏:

a b c d e f g h i j k l m n ...... z

现在我显示一个存在于数据库中的字符作为示例,如果名称存在类似于此Alan,那么我正在显示字符A

但是如果我没有名字的人以B开头,那么它现在正在显示。

相反,我想显示B即使你在db中不存在,我该怎么做?

这是我的代码:

      List<char> HeaderOf = new List<char>();

protected void ListItem(List<Customer>.Enumerator cust)
{
    if (cust.MoveNext())
    {
        Customer t = cust.Current;
        string[] list = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "v", "z" };
        var output = list.Aggregate("", (current, listitem) => current + (Environment.NewLine + "<h1 id='" + listitem.ToUpper() + "'><span>" + listitem.ToUpper() + "</span></h1>"));

        char CheckMe = t.Name.Substring(0, 1).ToUpper()[0];
        if (!HeaderOf.Contains(CheckMe))
        {
            HeaderOf.Add(CheckMe);

            l = new Literal();
            l.Text = "<h1 id='" + CheckMe + "'><span>" + CheckMe + "</span></h1>" + Environment.NewLine;
        }
    }
}

3 个答案:

答案 0 :(得分:0)

更好地使用中继器控制:

<asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>
            <h1 id='<%# Container.DataItem.ToString() %>' ><span><%# Container.DataItem.ToString() %></span></h1>
        </ItemTemplate>
    </asp:Repeater>

private const string ABCString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

        protected void Page_Load(object  sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource = ABCString;
                Repeater1.DataBind();
            }
        }

答案 1 :(得分:0)

创建一个通过客户枚举的功能会更容易。 然后另一个函数来构建文字以枚举字母数组

答案 2 :(得分:0)

我不太明白你的要求。为什么不在页面上显示字母A-Z。然后,当用户单击一个字母时,您将执行一个查询,该查询返回以该字母开头的人的姓名(如果这是您的意图)。