Coolite 方法调用浅谈

今天需要做个复选框删除,碰到了一个小难题,然后我一通乱写,居然误打误撞吧问题给解决了.堵塞的思维一下活跃起来,不禁想把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();
          }
          });

posted @ 2009-11-01 01:04  Andy  阅读(406)  评论(0编辑  收藏  举报