2011-08-31 45 views
0

我在ASP.NET中是全新的,所以我認爲這是一個簡單的問題。在我的應用程序嘗試使用jQuery樹狀,在默認頁面我有以下代碼:如何從SQL查詢填充jQuery樹視圖的無序列表?

<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查詢從我的數據庫中獲取樹視圖的數據。

所以我的問題是如何填充這個無序列表與我的數據?提前感謝!

回答

1

編輯: 這是一種將強類型對象傳遞給視圖的方法。

創建一個方法來加載你的清單,並把它添加到您的會話,所以你可以調用每一個回發這種方法,以確保您的名單還是在會議,像這樣:

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事件或您要確保您的名單還是在會議,像這樣的任何其他方法:

private void Page_Load(object sender, System.EventArgs e) { 
    LoadMyListToSession(); 
} 

您通過查看一個強類型的對象,如列表之類的您使用存儲項目s並且遍歷它來動態創建<ul>

例如,考慮鏈表類是強類型列表:

<% List<Object> ObjectList = (List<Object>) Session["ObjectList"]; &> 

<% if(ObjectList != null && ObjectList.Count > 0){ %> 
    <ul> 
    <% foreach(Object item in ObjectList) 
    { %> 
     <li><%= item.Name; %></li> 
<% } %> 
    </ul> 
<% } %> 

正如你可以在上面的例子中看到的,如果鏈表類是你從數據庫中加載項的列表,你可以遍歷它會在每次迭代中創建一個<li>,其中包含您希望的迭代項目中的任何屬性。 請記住,您需要從會話中加載您的對象,如上所示!

如果您還有問題,請詢問。

+0

非常感謝您的回答!我會盡量按照你的建議! –

+0

您使用的是哪個版本的ASP.NET?它是一個webforms應用程序? – Hallaghan

+0

是的,這是一個webform,ASP.Net版本4.0。一個愚蠢的問題 - 在將數據列表填充到服務器端後,我如何將數據列表傳遞給View? –