知道了字母怎么排列但是不知道怎么去分类怎么去写。
头比较混乱。上了很多的音乐网站,看了很多。不知道他们是怎么设计的那个格式。是datalist写的吗,还是datagrid写的啊。
每个字母的类别前,都有这个字母的特写在前面。希望多给我点意见。和设计这个页面的一点看法。
例如
A
啊----阿姨----阿拉---....
B
宝儿----贝贝-----
象上面这样,这个都是从数据库提取的。我提取的是歌手的名字。给多点意见,越多越好。任何方面都可以。
我的工具vs2008.sql2005
语言c#
做的是asp.net网页 

解决方案 »

  1.   

    需要把中文转拼音
    http://dev.firnow.com/course/4_webprogram/asp.net/netjs/20091227/185720.html
      

  2.   

    /// <summary>
             /// 提取汉字首字的拼音首字母并兼容英文与数字
             /// </summary>
             /// <param name="str"></param>
             /// <returns></returns>
             public static string CVT(string str)
             {
                 if (str.CompareTo("吖") < 0)
                 {
                     string s = str.Substring(0, 1).ToUpper();
                     if (char.IsNumber(s, 0))
                     {
                         return "0";
                     }
                     else
                     {
                         return s;
                     }             }
                 else if (str.CompareTo("八") < 0)
                 {
                     return "A";
                 }
                 else if (str.CompareTo("嚓") < 0)
                 {
                     return "B";
                 }
                 else if (str.CompareTo("咑") < 0)
                 {
                     return "C";
                 }
                 else if (str.CompareTo("妸") < 0)
                 {
                     return "D";
                 }
                 else if (str.CompareTo("发") < 0)
                 {
                     return "E";
                 }
                 else if (str.CompareTo("旮") < 0)
                 {
                     return "F";
                 }
                 else if (str.CompareTo("铪") < 0)
                 {
                     return "G";
                 }
                 else if (str.CompareTo("讥") < 0)
                 {
                     return "H";
                 }
                 else if (str.CompareTo("咔") < 0)
                 {
                     return "J";
                 }
                 else if (str.CompareTo("垃") < 0)
                 {
                     return "K";
                 }
                 else if (str.CompareTo("嘸") < 0)
                 {
                     return "L";
                 }
                 else if (str.CompareTo("拏") < 0)
                 {
                     return "M";
                 }
                 else if (str.CompareTo("噢") < 0)
                 {
                     return "N";
                 }
                 else if (str.CompareTo("妑") < 0)
                 {
                     return "O";
                 }
                 else if (str.CompareTo("七") < 0)
                 {
                     return "P";
                 }
                 else if (str.CompareTo("亽") < 0)
                 {
                     return "Q";
                 }
                 else if (str.CompareTo("仨") < 0)
                 {
                     return "R";
                 }
                 else if (str.CompareTo("他") < 0)
                 {
                     return "S";
                 }
                 else if (str.CompareTo("哇") < 0)
                 {
                     return "T";
                 }
                 else if (str.CompareTo("夕") < 0)
                 {
                     return "W";
                 }
                 else if (str.CompareTo("丫") < 0)
                 {
                     return "X";
                 }
                 else if (str.CompareTo("帀") < 0)
                 {
                     return "Y";
                 }
                 else if (str.CompareTo("咗") < 0)
                 {
                     return "Z";
                 }
                 else
                 {
                     return "0";
                 }         }用这个吧。很简单
      

  3.   

    可能是讲述的不太清楚,我在重复一遍我的问题:
    我的数据库里有一张表存储了歌手的中文名,还有歌手名的首字母,这两个列。例如:
    name      word
    后弦         h
    周杰伦       z
    问题就是,我不知道在页面显示的时候,怎么把它们按这种格式显示出来
    例如
    A
    啊----阿姨----阿拉---....
    B
    宝儿----贝贝-----
    c
    蔡依林……等等26个字母一次排列!
      

  4.   

    select * from #tb order   by   name   collate   Chinese_PRC_CS_AS_KS_WS  desc   
    http://topic.csdn.net/u/20091221/10/8EA31B64-BC21-4058-A8EC-07084FC79B02.html
      

  5.   

    我主要想实现的,是以下这种页面显示效果
    A
    啊----阿姨----阿拉---....
    B
    宝儿----贝贝-----
    c
    蔡依林……
    ……
    ……
    等等26个字母依次次排列显示在页面上,这是是用什么控件显示的,怎样显示更好呢?!
      

  6.   

    我的前面用了一个repeater控件,后面的代码如下,但是假如我要一行显示6个歌手,里面的格式式怎么办呢?public void showSingerName() {
            string words = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
            for (int i = 0; i < 26; i++)
            {            List<singerBean> singerList = singerBLL.getSinbyWord(words[i].ToString());
                Label lblWord = new Label();
                lblWord.Text = "<br>" + words[i].ToString()+"<br>";
                Label lblX = new Label();
              
                singerNamep.Controls.Add(lblWord);
               
                foreach (singerBean item in singerList)
                {
                    LinkButton lb = new LinkButton();
                    lb.Text = item.Name + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                    //lb.Style = "TEXT-DECORATION: none";
                    singerNamep.Controls.Add(lb);
                }
                lblX.Text = "<hr style='width:800px'>";
                singerNamep.Controls.Add(lblX);
            }
        }
      

  7.   

    1,最简单的就是 直接在 sql中解决。这个 如梦哥哥说了。
    2,在数据库的表中增加一字段:存放歌手名字的 首字的 首字母。
    3,有个方法就是将 汉字转成拼音。(不过如果是一些比较怪异的字,肯定无法转了)
      

  8.   

    可用repeater嵌套datalist:<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
    <ItemTemplate>
    <br /><%# Container.DataItem %><br />
    <asp:DataList ID="DataList1" runat="server" RepeatColumns="6" RepeatDirection="Horizontal">
    <ItemTemplate>
    <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Name") %>' />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </ItemTemplate>
    </asp:DataList>
    <hr style="width:800px" />
    </ItemTemplate>
    </asp:Repeater><script runat="server">
        protected void Page_Load(object  sender, EventArgs e)
        {
    Repeater1.DataSource = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    Repeater1.DataBind();
        } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    DataList datalist1 = e.Item.FindControl("DataList1") as DataList;
    datalist1.DataSource = singerBLL.getSinbyWord(e.Item.DataItem.ToString());
    datalist1.DataBind();
    }
    </script>
      

  9.   

    O(∩_∩)O谢谢各位,这个问题我已经解决!原来我用的是一个gridview里面的模板列里在放置一个lable和datalist。方法和18楼的很相似。不过18楼的方法更简便些。