我正在开发一个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;
}
}
所以它显示像这样的国家
但我希望展示这样的国家。使用组合字母可以轻松识别无法点击的起始字母。
我可以达到以上格式吗?然后怎么做?
非常感谢。
答案 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();