在ASP.NET中使用C#创建家谱视图

ASP.NET中使用C#创建家谱视图是一种展示数据关系的有效方式。传统的方法可能需要大量的HTML表格代码和复杂的按钮、标签以及图片布局。但本文将展示一种更简洁的方法,仅需20-25行代码即可实现。将使用Google组织图来创建树状视图,目标是从数据库中获取数据并按照父节点和位置(左和右)来展示数据。

首先,需要处理数据库部分。在这里,只关注名字和父节点编号。如果只有一个子节点,它将直接显示在父节点下面(既不在左边也不在右边),如果有两个孩子,他们将根据数据库中的位置分别显示在左边和右边。因此,在处理这些小但非常有效的细节时需要格外小心。

接下来,将讨论Google组织图。首先,来看它是如何工作的。这里,将展示生成树状视图的代码。更多信息,请访问。

JavaScript代码

<script> google.charts.load('current', {'packages':['orgchart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = new google.visualization.DataTable(); data.addColumn('string', 'Name'); data.addColumn('string', 'Manager'); data.addRows([ ['Mike', ''], ['Jim', 'Mike'], ['Alice', 'Mike'], ['Bob', 'Jim'], ['Carol', 'Jim'] ]); var chart = new google.visualization.OrgChart(document.getElementById('chart_div')); chart.draw(data, {allowHtml: true}); } </script>

上述代码与网站上的代码不完全相同。只取了帮助完成主要任务的部分。其他功能可以稍后添加。

所有这些代码都基于数据。例如,Mike、Jim、Alice、Bob等的数据。如果可以用来自数据库的值替换它,那么工作就完成了。首先,让从数据库中获取数据并形成一个字符串。

C#代码

string s = ""; DataTable table = new DataTable(); table.Columns.Add("name", typeof(string)); table.Columns.Add("parent", typeof(string)); table.Rows.Add("Mike", ""); table.Rows.Add("Jim", "Mike"); table.Rows.Add("Alice", "Mike"); table.Rows.Add("Carol", "Jim"); for (int i = 0; i < table.Rows.Count; i++) { s = s + "['" + table.Rows[i][0].ToString() + "','" + table.Rows[i][1].ToString() + "'],"; } s = s.TrimEnd(',', ' ');

只使用了一个DataTable并绑定了一些虚拟数据。需要将其与SQL绑定以从数据库中获取数据。现在字符串"s"已经准备好作为一组数据传递给Google组织图了。接下来,如何将这些数据添加到JavaScript函数中以调用或传递它。

在ASPX页面中注册JavaScript函数

String csname1 = "PopupScript"; Type cstype = this.GetType(); ClientScriptManager cs = Page.ClientScript; if (!cs.IsStartupScriptRegistered(cstype, csname1)) { StringBuilder cstext1 = new StringBuilder(); cstext1.Append(""); cs.RegisterStartupScript(cstype, csname1, cstext1.ToString()); }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485