今天需要做个复选框删除,碰到了一个小难题,然后我一通乱写,居然误打误撞吧问题给解决了.堵塞的思维一下活跃起来,不禁想把Coolite的方法调用写下来.
还是以按钮说起吧:
Coolite的按钮方法调用很灵活,它可以非常方便的调用javascript方法,也可以调用后台代码中的方法.
可以非常灵活的传递参数.
1.调用javaScript中的方法
首先假设javascript方法为
var scriptMethod=function()
{
.....
};
a.调用javascript方法的第一种方法.
<ext:Button ID="btn1" Text="按钮1" runat="server">
<Listeners>
<Click Fn="scriptMethod"/>
</Listeners>
</Button>
b.方法2
<ext:Button ID="btn1" Text="按钮1" runat="server">
<Listeners>
<Click Handler="={scriptMethod}"/>
</Listeners>
</Button>
2.调用服务器端代码中的方法
a.第一种跟asp.net非常像的方法.
<ext:Button ID="btn1" Text="按钮1" runat="server">
<AjaxEvents>
<Click onEvent="Btn1_Click"/>
</AjaxEvents>
</Button>
对应的方法为:
protected void Btn1_Click(object sender, AjaxEventArgs e)
{
this.SetTime();
}
跟原来的asp.net不同的地方就在于 AjaxEventArgs这里了.
b.接下来的这个方法,功能强大,传参方便,还可以加上回调函数,非常方便
<ext:Button ID="btn1" Text="按钮1" runat="server">
<Listeners>
<Click Handler="Coolite.AjaxMethods.MyMethod(
#{textName}.value,
#{textPass},value,
{
success:function(result){Ext.Msg.Alert('msg',result);}
}
);"/>
</Listeners>
</Button>
这样写,就会调用了服务器端代码中如下的方法:
[AjaxMethod]
public int MyMethod(string 参数1,2等等...)
{
....
return ...;
}
绿色的部分是传递的参数,比如#{txtName}.value 是ID为txtName的控件内所填的值,控件可以是Ext控件,也可以是asp服务器端控件,也可以是HTML控件.
蓝色的部分是回调函数,就是你所调用的方法执行完毕后,会返回一个值result,你可以在这里调用javaScript去处理这个值.很方便吧..
今天遇到这个问题乱写一通,发现居然在javaScript中也能很方便的调用后台方法.如下:
var DelSelected=function(){
Ext.MessageBox.confirm('提示', '是否要删除记录',function(btn){
if (btn == 'yes') {
Coolite.AjaxMethods.Del();
}
});