知识大全 让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/11389

相关参考

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

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

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

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

知识大全 让ASP.NET简便使用SCRIPT

让ASP.NET简便使用SCRIPT  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在开发应用程

知识大全 ASP.NET让网页弹出窗口不再困难

ASP.NET让网页弹出窗口不再困难  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  由于项目要用

知识大全 ASP.NET 揭秘 ASP.NET页面的结构

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

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

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

知识大全 控件开发asp.net处理标签间内容

  控件标签间的内容有的时候处理成节点有的时候处理成子控件如间的节点就会处理成属性Text的值而如Panel这样的控件则就是将其处理成子控件首先看如何处理成属性的  一处理成为属性  对于控件标签间的

知识大全 ASP.NET简介

ASP.NET开发宝典:ASP.NET简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章搭

知识大全 IIS处理Asp.net请求和 Asp.net页面生命周期

IIS处理Asp.net请求和Asp.net页面生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 如何由ASP.NET 1.1移植到ASP.NET 2.0

如何由ASP.NET1.1移植到ASP.NET2.0  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!