我正在使用Jqtree插件在我的mvc4应用程序中加载树视图,该视图包含按字母顺序排序的名称列表。一切正常,但页面加载花费了大量时间。
控制器代码:
public class HomeController : BaseController<Home, HomeModel>
{`
int i = 1;
[Authorize]
public override ActionResult Index()
{
ViewBag.DOM_TreeView = PopulateTreeView();
return View();
}
private string PopulateTreeView()
{
string DOM = "";
DataTable table = new DataTable();
//using (var connection = new SqlConnection("Data Source = 192.168.1.200; Initial Catalog=NHFP; User Id= sa; Password = server+123"))
using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["VMS.Demo"].ConnectionString))
{
connection.Open();
using (var command = new SqlCommand("SELECT * FROM ", connection))
{
table.Load(command.ExecuteReader());
}
connection.Close();
}
DOM = GetTreeView(table);
return DOM;
}
private string GetTreeView(DataTable dt)
{
string DOMTreeView = "";
string[] alphabetArray = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
foreach (string key in alphabetArray)
{
DOMTreeView += CreateTreeView(dt, key);
}
return DOMTreeView;
}
private string CreateTreeView(DataTable dt, string ParentKey)
{
string DOMDataList = "";
string ProviderName = "";
var result = dt.AsEnumerable().Where(dr => dr.Field<string>("Key") == ParentKey);
DOMDataList += "<tr class='treegrid-" + i + "'>";
DOMDataList += "<td>" + ParentKey + "</td>";
DOMDataList += "</tr>";
foreach (DataRow row in result)
{
ProviderName = row[1].ToString();
DOMDataList += "<tr class='treegrid-parent-" + i + "'>";
DOMDataList += "<td>" + ProviderName + "</td>";
DOMDataList += "</tr>";
}
i = i + 1;
return DOMDataList;
}
}
}
查看代码:
<script type="text/javascript">
$(document).ready(function () {
$('.tree').treegrid();
$('.tree-2').treegrid({
expanderExpandedClass: 'glyphicon glyphicon-minus',
expanderCollapsedClass: 'glyphicon glyphicon-plus',
autoOpen: 0
});
$('#tree').treegrid('collapseAll');
});
</script>
<script>
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r;
i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date();
a = s.createElement(o),
m = s.getElementsByTagName(o)[0];
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m)
})(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-43342702-1', 'maxazan.github.io');
ga('send', 'pageview');
</script>
</head>
<body >
<div class="container" >
<br><br>
<table class="table tree-2 table-bordered table-striped table-condensed table-scrollable" style="display:block;width:25%; overflow-y:scroll;height:500px" id="tree" >
@Html.Raw(ViewBag.DOM_TreeView)
</table>
</div>
</body>
</html>