我是ASP.NET的新手,所以我认为这是一个简单的问题。在我的应用程序中,我尝试使用jQuery treeview,在Default页面中我有以下代码:
<script src="jquery-1.6.2.js" type="text/javascript"></script>
<script src="jquery.treeview.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("#example").treeview({
persist: "location",
collapsed: true,
animated: "medium"
});
});
</script>
我需要填充树,所以我使用以下示例:
<ul id="example" runat="server" class="filetree">
<li><span class="folder">Folder 1</span>
<ul>
<li><span class="file">Item 1.1</span></li>
</ul>
</li>
<li><span class="folder">Folder 2</span>
<ul>
<li><span class="folder">Subfolder 2.1</span>
<ul>
<li><span class="file">File 2.1.1</span></li>
<li><span class="file">File 2.1.2</span></li>
</ul>
</li>
<li><span class="file">File 2.2</span></li>
</ul>
</li>
<li class="closed"><span class="folder">Folder 3 (closed at start)</span>
<ul>
<li><span class="file">File 3.1</span></li>
</ul>
</li>
<li><span class="file">File 4</span></li>
</ul>
问题是我使用SQL查询从数据库中获取树视图的数据。
所以我的问题是如何用我的数据填充这个无序列表?非常感谢提前!
答案 0 :(得分:1)
修改强> 这是一种将强类型对象传递给视图的方法。
创建一个方法来加载列表并将其添加到Session中,这样您就可以在每次回发时调用此方法,以确保列表保留在Session中,如下所示:
private void LoadMyListToSession()
{
DataContext ctx = New DataContext(); // instantiate your datacontext if you haven't done so before
List<Object> ObjectList = ctx.MyDataTable().ToList(); // load your list
Page.Session.Add("MyVariableName", ObjectList); // add your list to the session
}
在page_load事件或您希望确保列表保留在Session中的任何其他方法上执行类似的代码,如下所示:
private void Page_Load(object sender, System.EventArgs e) {
LoadMyListToSession();
}
将您的View传递给一个强类型对象,例如类的列表,用于存储数据库中的项目并迭代它以动态创建<ul>
。
例如,将ObjectList视为强类型列表:
<% List<Object> ObjectList = (List<Object>) Session["ObjectList"]; &>
<% if(ObjectList != null && ObjectList.Count > 0){ %>
<ul>
<% foreach(Object item in ObjectList)
{ %>
<li><%= item.Name; %></li>
<% } %>
</ul>
<% } %>
正如您在上面的示例中所看到的,如果ObjectList是您从数据库加载的项目列表,您可以遍历它并在每次迭代中创建一个<li>
,其中包含您项目中的任何属性你想要的迭代。
请记住,您需要从Session加载对象,如上所示!
如果您还有疑问,请询问。