天天看點

js前台調用背景方法

一、首先是沒有參數的背景方法(該方法是加載用戶端下來菜單控件):

public string GetRole() 
   { 
       string result =""; 
       DataSet ds =a.SelectRole(""); 
       for (int i = 0; i <ds.Tables[0].Rows.Count; i++) 
       { 
           result +=ds.Tables[0].Rows[i]["ID"].ToString() + "," +ds.Tables[0].Rows[i]["RoleName"].ToString() + "|"; 
       } 
       returnresult.TrimEnd('|'); 
   } 
           

這是前台調用(紅色部分就是關鍵點):

function testRole() { 
 
           var strdsa='<%=getRole() %>'           
           alert(strdsa); 
           var selerole =document.getElementById("selRole"); 
            
           if(selerole.options.length) { 
               delesele(); 
           } 
           //以|分解 
           var strRole = strdsa.toString().split("|"); 
            
           for (var i = 0; i <strRole.length; i++) { 
 
               var tempitem = strRole[i]; 
               var tempitems = tempitem.split(","); 
           
              selerole.options.add(new Option(tempitems[1], tempitems[0])); 
           } 
       } 
 
           

二、這是一個帶參數的方法(背景方法):

protected string CsharpVoid(string strCC) 
{ 
   strCC = "你好!" +strCC; 
   return strCC; 
}
           

前台JS    

function Init()
{ 
   var v = "中國"; 
   var s ='<%=CsharpVoid("'+v+'") %>'; 
   alert(s); 
}
           

三、觸發button_click

1、首先建立一個按鈕,在背景将調用或處理的内容寫入button_click中;

2、在前台寫一個js函數,内容為document.getElementById("btn1").click();

3、在前台或背景調用js函數,激發click事件,等于通路背景c#函數;

總結:個人認為,使用js調用背景方法時,會出現以下問題:

1、  在頁面載入的時候,頁面就已經對背景方法進行解析,前台js無法動态向背景方法傳遞不同的參數。

2、  背景方法執行後,如果有傳回值,無法給前台傳回執行結果,或者無法給前台頁面指派。

Ps:想要實作前背景資料實時互動,可用方法AjaxPro2或者是JQuery的getJson方法