绑定Treeview控件问题 [英] Bind Treeview Control Problem
问题描述
Hi Team,
我想绑定treeview控件。我已将此表数据相关联。
SAMAccountName 电子邮件显示名称报告级别
nafees.ahmed nafees.ahmed@ibtechnology.com NAFEES AHMED 0
sameerkhanna sameerkhanna@ibtechnology.com SAMEER KHANNA nafees.ahmed 1
juned.mohd juned.mohd @ ibtechnology.com Mohd Juned sameerkhanna 2
rana.samir rana.samir@ibtechnology.com Samir Rana sameerkhanna 2
harkesh.deshwal harkesh.deshwal@ibtechnology.com Harkesh Deshwal sameerkhanna 2
satish.k5 satish.k5@ibtechnology.com Satish Kumar sameerkhanna 2
我想要在级别基础上绑定树视图。请帮忙并建议我。
提前致谢
Hi Team,
I want to bind treeview control. I have related this table data.
SAMAccountName Email Display Name Reporting To Level
nafees.ahmed nafees.ahmed@ibtechnology.com NAFEES AHMED 0
sameerkhanna sameerkhanna@ibtechnology.com SAMEER KHANNA nafees.ahmed 1
juned.mohd juned.mohd@ibtechnology.com Mohd Juned sameerkhanna 2
rana.samir rana.samir@ibtechnology.com Samir Rana sameerkhanna 2
harkesh.deshwal harkesh.deshwal@ibtechnology.com Harkesh Deshwal sameerkhanna 2
satish.k5 satish.k5@ibtechnology.com Satish Kumar sameerkhanna 2
I want to bind treeview on level basis. Please help and suggest me.
Thanks in advance
推荐答案
加价:
markup:
<form id="form1" runat="server">
<div>
<asp:TreeView runat="server" ID="tvw">
</asp:TreeView>
</div>
</form>
code bebind:
code bebind:
public partial class TestPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable result = GetData();
var dt = result.AsDataView();
dt.Sort = "Level";
//tvw.Nodes.Add(new TreeNode("Root", "-1"));
TreeNode node = null;
int previousLevel = 0;
TreeNodeCollection coll = null;// = tvw.Nodes[0].ChildNodes;
foreach (DataRowView row in dt)
{
int level = int.Parse(row["Level"].ToString());
if (level > previousLevel)
{
previousLevel = level;
coll = node.ChildNodes;
}
node = AddNodes(coll, level, row);
}
}
private DataTable GetData()
{
var dt = new DataTable();
dt.Columns.Add("UserId");
dt.Columns.Add("Email");
dt.Columns.Add("FullName");
dt.Columns.Add("Level");
var row = dt.NewRow();
row["UserId"] = "nafees.ahmed";
row["Email"] = "nafees.ahmed@ibtechnology.com";
row["FullName"] = "NAFEES AHMED";
row["Level"] = 0;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "sameerkhanna";
row["Email"] = "sameerkhanna@ibtechnology.com";
row["FullName"] = "SAMEER KHANNA";
row["Level"] = 1;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "juned.mohd";
row["Email"] = "juned.mohd@ibtechnology.com";
row["FullName"] = "Mohd Juned sameerkhanna";
row["Level"] = 2;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "nafees.ahmed";
row["Email"] = "nafees.ahmed@ibtechnology.com";
row["FullName"] = "NAFEES AHMED";
row["Level"] = 0;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "rana.samir";
row["Email"] = "rana.samir@ibtechnology.com";
row["FullName"] = "Samir Rana sameerkhanna";
row["Level"] = 2;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "harkesh.deshwal";
row["Email"] = "harkesh.deshwal@ibtechnology.com";
row["FullName"] = "Harkesh Deshwal sameerkhanna";
row["Level"] = 2;
dt.Rows.Add(row);
row = dt.NewRow();
row["UserId"] = "satish.k5";
row["Email"] = "satish.k5@ibtechnology.com";
row["FullName"] = "Satish Kumar sameerkhanna";
row["Level"] = 2;
dt.Rows.Add(row);
return dt;
}
private TreeNode AddNodes(TreeNodeCollection nodes, int level, DataRowView r)
{
var item = new TreeNode()
{
Text = string.Concat("(", r["Level"].ToString(), ") ", r["UserId"].ToString(), r["Email"].ToString(), r["FullName"].ToString()),
Value = r["Level"].ToString()
};
if (null == nodes)
{
tvw.Nodes.Add(item);
}
else
{
nodes.Add(item);
}
return item;
}
}
您实现了什么,级别代码树视图填充,上面的代码将执行此操作。这里我使用带有模拟数据的自定义数据表,但您需要从数据库中填充它。看到输出后我没有发现这个树视图的任何含义。请告诉我这是您的要求或不同的东西。
What you achieve, level wise code tree view population, above code will do this. Here I use custom datatable with mock data but you need to populate it from database. After seen the output i do not find any meaning of this tree view. Please let me know is this your requirements or something different.
这篇关于绑定Treeview控件问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!