2011-10-24 52 views
0

我有一個使用ASP.NET WebForms和JQuery構建的應用程序。在我的.aspx頁面中,我有一個鏈接,單擊它時,會向頁面的代碼隱藏中的WebMethod發出一個JQuery AJAX請求,輪流從數據庫讀取數據並將其作爲JSON對象返回。如何使用JQuery創建LinkBut​​ton

$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: 'Query.aspx/GetValues', 
    dataType: "json", 
    success: function (result) { 
     for (var i = 0; i < result.d.length; i++) { 
     var element = result.d[i]; 
     } 
    } 
}); 

一切都好,直到現在!這些問題出現時,我想寫出這個JSON對象的頁面,因爲他們每個人我想生成HTML這樣的:

<li><a id="..." href="javascript:doPostback(...)">...</a></li> 

其實,我需要生成一個排序的LinkBut​​ton客戶機的因爲我需要在PostBack上進行一些服務器端操作。我不知道如何使用JQuery來表達這一點。

我希望我的問題很清楚。

非常感謝!

回答

0
var element = ''; 
$.ajax({ 
    type: "POST", 
    contentType: "application/json; charset=utf-8", 
    url: 'Query.aspx/GetValues', 
    dataType: "json", 
    success: function (result) { 
     for (var i = 0; i < result.d.length; i++) { 
     element+= '<a href="javascript:doPostback(...)">'+result.d[i]+'</a>'; 
     } 
    $('#result-container').html(element); 
    } 
}); 

此代碼將創建鏈接並將html加載到結果容器中。

+0

這是好的,但我需要這些括號之間的代碼:link.attr('href','javascript:doPostback(...)'); :D問題是我不知道如何發佈回傳(帶有參數)。 – Alessandro

+0

你好,創建一個新的函數doPostback,從JSON結果中獲取參數編輯:ex函數doPostback(str){alert('你選擇了'+ str); } – NeoStar

+0

但是這不會是一個ASP.NET PostBack ... – Alessandro

1

所以,你返回的JSON對象好嗎?你在這些JSON對象中返回什麼樣的信息?這可能是一個巨大的假設,這取決於你的JSON對象被返回什麼樣的信息,但爲什麼不嘗試這樣的:

... 
success: function (result) { 
    for (var i = 0; i < result.d.length; i++) { 
     var element = result.d[i]; 

     var link = $('<a />'); 
     link.attr('href', 'javascript:doPostback(...)'); 
     link.attr('id', 'some-id'); 
     link.html('link-text-here'); 

     var list_item = $('<li />'); 
     list_item.append(link); 

     $('your-ordered-list-selector').append(list_item); 
    } 
} 
... 

希望這有助於! :)

+0

這是好的,但我需要這些括號之間的代碼:link.attr('href','javascript:doPostback(...)'); :D問題是我不知道如何發佈回傳(帶有參數)。 – Alessandro

+0

與你在普通HTML中做的幾乎一樣。所以如果我的函數名稱叫做「awesomeFunction」,並且它需要2個參數 - 兩個字符串 - 你可以這樣做:'link.attr('href','javascript:awesomeFunction(「first-string」,「second-string」 )');' –

+0

或者,應用onclick函數:'link.attr('href','return false')。click(function(){awesomeFunction(「first-string」,「second-string」)}) ;' –