一、按钮调用javaScript中的方法
首先假设javascript方法为
var
scriptMethod
=
function
()
{
...
};
{
...
};
1.调用javascript方法的第一种方法.
<
ext:Button
ID
="btn1"
Text
="按钮1"
runat
="server"
>
< Listeners >
< Click Fn ="scriptMethod" />
</ Listeners >
</ Button >
< Listeners >
< Click Fn ="scriptMethod" />
</ Listeners >
</ Button >
2.调用javascript方法的第二种方法
<
ext:Button
ID
="btn1"
Text
="按钮1"
runat
="server"
>
< Listeners >
< Click Handler ="={scriptMethod}" />
</ Listeners >
</ Button >
< Listeners >
< Click Handler ="={scriptMethod}" />
</ Listeners >
</ Button >
二、按钮调用服务器端代码中的方法
1.第一种跟asp.net非常像的方法.
<
ext:Button
ID
="btn1"
Text
="按钮1"
runat
="server"
>
< AjaxEvents >
< Click onEvent ="Btn1_Click" />
</ AjaxEvents >
</ Button >
< AjaxEvents >
< Click onEvent ="Btn1_Click" />
</ AjaxEvents >
</ Button >
对应的方法为:
protected
void
Btn1_Click(
object
sender, AjaxEventArgs e)
{
this .SetTime();
}
{
this .SetTime();
}
跟原来的asp.net不同的地方就在于AjaxEventArgs这里了。
2.接下来的这个方法,功能强大,传参方便,还可以加上回调函数,非常方便。
例子1:
<
ext:Button
ID
="btn1"
Text
="按钮1"
runat
="server"
>
< Listeners >
< Click Handler ="Coolite.AjaxMethods.MyServerMethod(
#{textName}.value,
#{textPass}.value,
{
success:function(result){Ext.Msg.Alert('msg',result);}
}); " />
</ Listeners >
</ Button >
< Listeners >
< Click Handler ="Coolite.AjaxMethods.MyServerMethod(
#{textName}.value,
#{textPass}.value,
{
success:function(result){Ext.Msg.Alert('msg',result);}
}); " />
</ Listeners >
</ Button >
这样写,就会调用了服务器端代码中如下的方法:
[AjaxMethod]
public int MyServerMethod( string 参数1,2等等 )
{
...
return ...;
}
public int MyServerMethod( string 参数1,2等等 )
{
...
return ...;
}
黄色的部分是传递的参数,比如#{txtName}.value 是ID为txtName的控件内所填的值,控件可以是Ext控件,也可以是asp服务器端控件,也可以是HTML控件.青色的部分是回调函数,就是你所调用的方法执行完毕后,会返回一个值result,你可以在这里调用javaScript去处理这个值.
例子2:
<
ext:Button
ID
="Button1"
runat
="server"
Text
="Say Hello"
>
< Listeners >
< Click Handler ="Coolite.AjaxMethods.SayHello(
'World',
{
success: function (result) {alert(result);}
});" />
</ Listeners >
</ ext:Button >
< Listeners >
< Click Handler ="Coolite.AjaxMethods.SayHello(
'World',
{
success: function (result) {alert(result);}
});" />
</ Listeners >
</ ext:Button >
这样写,就会调用服务器代码中的如下方法:
[AjaxMethod]
public string SayHello( string text)
{
return " Hello " + text;
}
public string SayHello( string text)
{
return " Hello " + text;
}
三、在javaScript中调用后台方法
var
DelSelected
=
function
(){
Ext.MessageBox.confirm( ' 提示 ' , ' 是否要删除记录 ' , function (btn){
if (btn == ' yes ' ) {
Coolite.AjaxMethods.Del();
}
});
Ext.MessageBox.confirm( ' 提示 ' , ' 是否要删除记录 ' , function (btn){
if (btn == ' yes ' ) {
Coolite.AjaxMethods.Del();
}
});
(转)