2011-06-08 39 views
0

所以我有一個Web窗體ASP的控制:傳遞參數,從網絡到數據綁定形成

<asp:DropDownList runat="server" ID="ExistingTemplate" ClientIDMode="Static" /> 

在後端代碼,它通過這個被填充:

public override void DataBind() 
    { 
     base.DataBind(); 

     var selectList = Chatham.Web.Models.Indications.DropDownData.AllEditableTemplates(); 
     ExistingTemplate.DataSource = selectList.Items; 
     ExistingTemplate.DataTextField = selectList.DataTextField; 
     ExistingTemplate.DataValueField = selectList.DataValueField; 
     ExistingTemplate.DataBind(); 


     SetTabVisibility(); 
    } 

現在,我想重構採取參數的方法有AllEditableTemplates。該參數只能通過主頁面前端的客戶端Javascript代碼訪問。

如何將參數傳遞給我從頁面上的Javascript獲得的此方法?

回答

0

公開它作爲一種web方法,讓javascript調用它,而不是試圖從javascript中獲取值。 http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx

使用隱藏域有問題 - 通常情況下,數據綁定被稱爲馬上地方,這意味着到Web服務器的初始請求沒有表單字段設置還,這將是空的。您需要第二個請求才能填充,以便表單請求擁有它。從客戶端調用web方法反而解決了這個問題。

1

您可以使用JavaScript將其存儲在隱藏的表單字段中。然後使用HttpRequest.Form屬性很容易從服務器端檢索它。

+0

嗯,這是一個想法。讓我給一個鏡頭。 – slandau 2011-06-08 19:20:36