一、首先是没有参数的后台方法(该方法是加载客户端下来菜单控件):
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方法