Coolite调用母版页的方法

       在UserControl(ascx),MasterPage或者Page(aspx)中使用Coolite的AjaxMetod讲究是不同的,在MasterPage中或者你在类似DotNetNuke的系统中调用AjaxMetod标志的方法,默认情况下是会找不到方法的,

处理此类问题需要使用AjaxMethodProxyID,使用的方法是在类的前面加上,如下
[AjaxMethodProxyID(IDMode = AjaxMethodProxyIDMode.None)]
partial class ModuleRightManager : PortalModuleBase

我们先看一下几种AjaxMethodProxyID 的区别

1. None - 命名前缀是空的,调用方法时直接使用 Coolite.AjaxMethods.ajaxMethod(...)
2. ClientID - 命名前缀需要加上当前类控件的client id(客户端前缀) ,如Coolite.AjaxMethods.ctl00_UC1.ajaxMethod ,当然通常情况下我们Coolite.AjaxMethods.<%=this.ClientID>.ajaxMethod(...)
3. ID - 使用当前控件ID作为前缀, Coolite.AjaxMethods.UC1.ajaxMethod(...)
4. Alias - 使用别名做前缀,你可以声明自己的一个别名, Coolite.AjaxMethods.myAlias.ajaxMethod(...)
5. AliasPlusID - 别名和ID同时使用,如 Coolite.AjaxMethods.myAliasUC1.ajaxMethod(...) 

       在有MasterPage页面或者在类似DotNetNuke的CMS系统下使用Coolite的AJAXMethod,建议你在页面的前部加上:
[AjaxMethodProxyID(IDMode = AjaxMethodProxyIDMode.ClientID)]
public partial class PopupCustomerDetail : PortalModuleBase

例子:
母版页.cs:
C#复制代码
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Web;   
  5. using System.Web.UI;   
  6. using System.Web.UI.WebControls;   
  7. using Coolite.Ext.Web;   
  8.   
  9. [AjaxMethodProxyID(IDMode = AjaxMethodProxyIDMode.None)]   
  10. public partial class Base : System.Web.UI.MasterPage   
  11. {   
  12.     protected void Page_Load(object sender, EventArgs e)   
  13.     {   
  14.   
  15.     }   
  16.   
  17.     [AjaxMethod]   
  18.     public string PageMethod()   
  19.     {   
  20.         return "调用了模板页的方法PageMethod();";   
  21.     }   
  22.   
  23. }  
内容页:
C#复制代码
  1. <%@ Page Title="" Language="C#" MasterPageFile="~/Base.master" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>   
  2.   
  3. <%@ Register assembly="Coolite.Ext.Web" namespace="Coolite.Ext.Web" tagprefix="ext" %>   
  4.   
  5. <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">   
  6. </asp:Content>   
  7. <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">   
  8.     <ext:ScriptManager ID="ScriptManager1" runat="server" />   
  9.     <ext:Button ID="Button1" runat="server" Text="点我">   
  10.         <Listeners>       
  11.         <Click Handler="     
  12.              Coolite.AjaxMethods.PageMethod({     
  13.                  success: function(result) {     
  14.                      Ext.Msg.alert('提示信息', result);     
  15.                  }     
  16.              });" />       
  17.         </Listeners>       
  18.     </ext:Button>   
  19.   
  20. </asp:Content>  


上一篇:Coolite调用用户控件里的方法

下一篇:Coolite的AjaxEvent绑定在在官方的Button控件

留下脚印压缩包密码:sosuo8
名字:
全部评论:
申明:本站部分文章来自网络,由于各种原因对文章的来源无从考究,如果您是“ Coolite调用母版页的方法 ”的原作者,若侵犯您的版权,请与我联系!在此请您原谅我的幼稚和无知!联系方法:email:ahuinan@21cn.com  QQ:106494262

感谢以下网友对网站提出的建议:
1、感谢“蓝树叶kiss”网友发现一个评论漏洞。(2009-2-28)
2、感谢“陈臣”对程序优化和seo方面的建议。(2009-3-18)
文章档案
  • 作者:佚名
  • 来源:转载
  • 日期:2010-2-7 10:03:00
  • 点击:356
网友投票(您觉得这篇文章怎样?)
loadding...请稍侯......