如何使用组格式生成树视图? (表示起始单词的字母)

时间:2014-10-28 04:44:56

标签: c# mysql asp.net treeview

我正在开发一个ASP.NET网站,并有一个树视图来显示存储在MYSQL数据库中的国家。

我正在使用此代码将数据绑定到树视图。

dt_Record是一个数据表。

private void get_Countries()
    {
        try
        {
            dt_Record.Clear();
            dt_Record = objCommonMethods_Bll.Get_Countries();
            if (dt_Record.Rows.Count != 0)
            {
                foreach (DataRow dr in dt_Record.Rows)
                {
                    TreeNode node = new TreeNode();
                    node.Text = dr["name"].ToString();
                    node.Value = dr["Countries_id"].ToString();
                    tvCountries.Nodes.Add(node);
                }
            }
        }
        catch (Exception)
        {

            throw;
        }
    }

所以它显示像这样的国家

enter image description here

但我希望展示这样的国家。使用组合字母可以轻松识别无法点击的起始字母。

enter image description here

我可以达到以上格式吗?然后怎么做?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我使用LINQ查询完成了这个操作,但在我的情况下,我有一个用于模型而不是数据库的数据结构。 但您可以在方案中使用数据库。 这是我的代码:

1)我创建了一个类来将其用作表。

    public class Country
    {
        public string Name { get; set; }
    }

2)我创建了一个填充数据的列表,&在您的情况下,您将从数据库中获取数据。

 List<Country> countriesList = new List<Country>()
                                        {
                                            new Country{Name="Algeria"},
                                            new Country{Name="Angola"},
                                            new Country{Name="Benin"},
                                            new Country{Name="Botswana"},
                                            new Country{Name="Burkina Faso"},
                                            new Country{Name="Burundi"},
                                            new Country{Name="Cameroon"},
                                            new Country{Name="Cape Verde"},
                                        };

3)最后编写了LINQ查询以将Grouped数据作为::

var temp = (from con in countriesList
                       group con by con.Name[0] into gr
                       select new
                       {
                           Key = gr.Key,
                           Value = gr.ToList()
                       }).ToList();