科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件.Net组件开发介绍 开发ajax控件

.Net组件开发介绍 开发ajax控件

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在如今的web开发中,ajax以一个旧瓶新装的技术,以xml,javascript,XmlHttp为基础变新而来的。正如如今的太极拳,用得相当的广。

作者:佚名 来源:博客园 2007年11月18日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
 3。分析示例代码:

  3.1我们先申明一个包含事件处理的派生类,因为我们要把AjaxText控件的Text属性写入其中,为什么要这样呢。其实,我们用的是异步回调中的自定义事件,如下下例中的TextChange事件,我想把this.控件ID.Text属性取出来,去对这个text的值去操作,发现text的值取不出来,后面就想到了把text的值写入到事件处理数据类中,也就是 这段代码。

以下是引用片段:
  public class TextChangedEventArgs : EventArgs
   {
  
  
   public TextChangedEventArgs()
   {
   Text = "";
  
   }
  
   public TextChangedEventArgs(string _Text)
   {
   Text = _Text;
  
   }
   private string Text = "";
   public string TextValue
   {
   get { return Text; }
   }
   }

  3.2我们定义的一些属性。如Text(string),ReturnString(string),IsValid(bool),ClientCallBackScript(string)

  注意其中的两个属性:一个是IsValid,一个是ClientCallBackScript,那个IsValid是返回给客户端的值,又将它转成字符串给了ReturnString,因为下面这个方法中GetCallbackResult()

  要求返回字符串。

  IsValid的另一个重要作用在于,在客户端脚本中对于进行判定:例:

以下是引用片段:
<script>
    
    
function GetCallbackData(res)
    { 
if(res=="True")
        {  
           document.getElementById(
"Label1").innerHTML="<font color=blue>成功</font>";
           document.getElementById(
"hi").value="1";
        
        }
        
else
        { 
        document.getElementById(
"Label1").innerHTML="<font color=blue>该用户已存在</font>";
         document.getElementById(
"hi").value="0";
            
        }
    }
    
</script>

  那个ClientCallBackScript属性,非常重要,它是指向哪个js将被调用,并由GetCallbackEventReference去调用。

  如:

以下是引用片段:
string callbackScript = Page.ClientScript.GetCallbackEventReference(this, "this.value", ClientCallBackScript, null);

  页面中

以下是引用片段:
<txt:ajaxText runat=server ID=aj ClientCallBackScript=GetCallbackData ...

  指向正是上例中的function GetCallbackData(res)

  3.3 Render方法

  Render 方法将Web 控件发送到指定的HtmlTextWriter 实例。重写此方法以将自定义服务器控件发送到客户端

  这个方法在后述中会讲到。

  3.4 事件与委托。

  定义了TextChanged事件,TextChangedEventHandler委托

以下是引用片段:
1 public event TextChangedEventHandler TextChanged
  2 {
  3 add
  4 {
  5
  6 Events.AddHandler(eventTextChanged, value);
  7 }
  8 remove
  9 {
  10
  11 Events.RemoveHandler(eventTextChanged, value);
  12 }
  13 }
  14
  15

  定义了一个TextChanged事件,而事件发生的时候只能用TextChangedHandler这个委托来做的。

  把委托都存放在了一个EventHandlerList中,因此此处你可以看到add与remove,

  这是访问器的声明,用于添加或移除客户代码中的事件处理程序,这样做的好处是公开大量的事件但不为每个事件分配字段,而是使用EventHandlerList存储这些事件例

  关于事件与委托,事件与委托详见上篇

  http://www.cnblogs.com/suiqirui19872005/archive/2007/10/12/922313.html

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章