一、首先是沒有參數的背景方法(該方法是加載用戶端下來菜單控件):
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方法