知识大全 让UserControl 成为Asp.Net ajax 控件

Posted

篇首语:不塞不流,不止不行。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 让UserControl 成为Asp.Net ajax 控件相关的知识,希望对你有一定的参考价值。

让UserControl 成为Asp.Net ajax 控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  很多时候 我们需要用到User Control 将部份UI或业务逻辑包装 下面将UserControl包装成Asp Net ajax 控件:简单示例:(ASCX) 这一段代码就不解释了:

     <table>       <tr>           <td>               Login Name:           td>           <td>               <asp:TextBox ID= UserName Ruant= Server >asp:TextBox>           td>      tr>      <tr>          <td>              Password:          td>          <td>              <asp:TextBox ID= Password TextMode= Password Ruant= Server >asp:TextBox>          td>      tr> table>

  (LoginPanel js)

   <script type= text/javascript >       ///        Type registerNamespace( CsharpFarmer );       CsharpFarmer LoginPanel= function(element)            CsharpFarmer LoginPanel initializeBase(this [element]);           this userName = null;           this password = null;              CsharpFarmer LoginPanel prototype =          initialize: function()              CsharpFarmer LoginPanel callBaseMethod(this initialize );              // Add custom initialization here                   get_userName: function()              return this userName ;                   set_userName: function(value)              this userName = value;                   get_password: function()              return this password ;                   set_password: function(value)              this password = value;                   dispose: function()              //Add custom dispose actions here              CsharpFarmer LoginPanel callBaseMethod(this dispose );              delete this userName;              delete this password;                    CsharpFarmer LoginPanel registerClass(CsharpFarmer LoginPanel Sys UI Control); </script>

  (控件相对应的js 注意get和set方法必须成对出现 与属性以 _ 隔开 ) 至于为什么 只是一种规定 查看MsAjax:中:Sys$Component$_setProperties:

  Codefunction Sys$Component$_setProperties(target properties)     ///     ///     ///     var e = Function _validateParams(arguments [        name: target         name: properties     ]);    if (e) throw e;    var current;    var targetType = Object getType(target);    var isObject = (targetType === Object) || (targetType === Sys UI DomElement);    var isComponent = Sys Component isInstanceOfType(target) && !target get_isUpdating();    if (isComponent) target beginUpdate();    for (var name in properties)         var val = properties[name];        var getter = isObject ? null : target[ get_ + name];        if (isObject || typeof(getter) !== function )             var targetVal = target[name];            if (!isObject && typeof(targetVal) === undefined ) throw Error invalidOperation(String format(Sys Res propertyUndefined name));            if (!val || (typeof(val) !== object ) || (isObject && !targetVal))                 target[name] = val;                        else                 Sys$Component$_setProperties(targetVal val);                            else             var setter = target[ set_ + name];            if (typeof(setter) === function )                 setter apply(target [val]);                        else if (val instanceof Array)                 current = getter apply(target);                if (!(current instanceof Array)) throw new Error invalidOperation(String format(Sys Res propertyNotAnArray name));                for (var i = j = current length l= val length; i < l; i++ j++)                     current[j] = val[i];                                        else if ((typeof(val) === object ) && (Object getType(val) === Object))                 current = getter apply(target);                if ((typeof(current) === undefined ) || (current === null)) throw new Error invalidOperation(String format(Sys Res propertyNullOrUndefined name));                Sys$Component$_setProperties(current val);                        else                 throw new Error invalidOperation(String format(Sys Res propertyNotWritable name));                            if (isComponent) target endUpdate();

  LoginPanel cs

   using System;  using System Collections Generic;  using System Linq;  using System Web;  using System Web UI;  using System Web UI WebControls;  using System Text;    /// /// LoginPanel /// public partial class LoginPanel : System Web UI UserControl IScriptControl      protected void Page_Load(object sender EventArgs e)                protected override void Render(HtmlTextWriter writer)               writer AddAttribute(HtmlTextWriterAttribute Id this ClientID);          writer RenderBeginTag( Div );          base Render(writer);          writer RenderEndTag();           protected override void OnPreRender(EventArgs e)               base OnPreRender(e);          var sm = ScriptManager GetCurrent(this Page);          sm RegisterScriptControl<LoginPanel>(this);          sm RegisterScriptDescriptors(this);                #region IScriptControl      public IEnumerable<ScriptDescriptor> GetScriptDescriptors()               var descriptor = new ScriptControlDescriptor( CsharpFarmer LoginPanel this ClientID);          descriptor AddElementProperty( userName UserName ClientID);          descriptor AddElementProperty( password Password ClientID);          yield return descriptor;           public IEnumerable<ScriptReference> GetScriptReferences()               var sr = new ScriptReference( ~/LoginPanel js );          yield return sr;           #endregion 这一段代码中应当注意 必须

cha138/Article/program/net/201311/11280

相关参考

知识大全 UserControl 成为 Asp.Net ajax 控

UserControl成为Asp.Netajax控  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 UserControl 成为 Asp.Net ajax 控件

UserControl成为Asp.Netajax控件  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 ASP.NET2.0中CSS失效解决Q&A

ASP.NET2.0中CSS失效解决Q&A  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  经常有

知识大全 ASP.NET底层架构探索之进入ASP.NET

ASP.NET底层架构探索之进入ASP.NET  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  A

知识大全 支持入门—ASP.NET常用技巧

支持入门—ASP.NET常用技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在上一篇《深入A

知识大全 ASP.NET页面间数据传递小结

ASP.NET页面间数据传递小结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET较A

知识大全 ASP.NET LinkButton组件编程浅析

ASP.NETLinkButton组件编程浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  A

知识大全 ASP.NET 新特性之工程模板支持

ASP.NET新特性之工程模板支持  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一简介  在A

知识大全 Asp.Net获取网站截图的实例代码

Asp.Net获取网站截图的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章介绍了A

知识大全 ASP.Net MVC框架配置与分析

ASP.NetMVC框架配置与分析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前几年的时候A