2012-09-03 72 views
0

我正在使用this plugin來顯示可選列表。通過C#代碼隱藏將列表項添加到jqueryui

雖然它工作正常,我需要從C#後面的代碼填充這些列表項。 你能指點我正確的方向嗎?

這是代碼隱藏部分:

wnetEntities1 db = new wnetEntities1(); 
var wl = from w in db.wnet_available 
     join role in db.wnet_userinfo 
     on w.UserID equals role.UserId 
     where w.AvailStatus == 1 && role.WLId == 1 
     select new { w.UserID, role.FirstName }; 

wl.ToList(); 
foreach (var w in wl) 
{ 
    var name = w.FirstName; 

//猜測這是其中應該生成的立項目。 }

這是HTML列表(這需要從asp.net中產生):

 <ol id="selectable"> 

     <li class="ui-widget-content">Item 1</li> 
     <li class="ui-widget-content">Item 2</li> 
     <li class="ui-widget-content">Item 3</li> 
     <li class="ui-widget-content">Item 4</li> 
     <li class="ui-widget-content">Item 5</li> 
     <li class="ui-widget-content">Item 6</li> 
     <li class="ui-widget-content">Item 7</li> 
    </ol> 
+0

在後面的代碼,你可以不生成一個字典列表,並將其返回給js,以便你可以使用你的jQuery插件填充? – Pawan

回答

1

能夠看到服務器端的ol元素,先加runat="server"它:

<ol id="selectable" runat="server"> 

然後你就可以輕鬆地添加li s到它:

foreach (var w in wl.ToList()) 
{ 
    HtmlGenericControl li = new HtmlGenericControl("li"); 
    li.Attributes.Add("class", "ui-widget-content"); 
    li.InnerText = w.FirstName; 
    selectable.Controls.Add(li); 
} 
+0

嗨@Kamyar,試圖做到上述,但我無法設置「ol」元素的ClientIDMode。該屬性不會出現在intellisense上。 –

+0

@AmitPhilips這添加到.Net 4 – Kamyar

+0

嗨@kamyar雖然intellisense不顯示它,我把它放在n它的作品。 thanq這麼多:) (使用.NET 4.0) –

0

喜歡這個?

<% var items = wl.ToList(); %> 

     <ol id="selectable"> 

     <% foreach (var w in items) 
      { %> 
      <li class="ui-widget-content"><%=w.FirstName %></li> 

      <% } %> 
     </ol> 
+0

請原諒我缺乏知識。但我應該在哪裏寫上述代碼...在代碼隱藏或.aspx? 爲什麼你使用「<% %>」這是一些技術? –

+0

不,它是ASP/ASPX頁面中C#代碼的標記。如果我的回答不清楚或對您的問題不太好,您可以關注Kamyar回答 –

+0

感謝蛇眼和@kamyar回覆。 我遵循了蛇眼提到的內聯asp方法(在我的場景中需要這個方法),它的工作很棒。 用「runat = server」調用jqueryui禁用列表功能以及樣式:) thankx guys超級開心:) –

相關問題