知识大全 让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 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 经常有
ASP.NET底层架构探索之进入ASP.NET 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! A
支持入门—ASP.NET常用技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在上一篇《深入A
ASP.NET页面间数据传递小结 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET较A
ASP.NETLinkButton组件编程浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! A
ASP.NET新特性之工程模板支持 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一简介 在A
Asp.Net获取网站截图的实例代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!这篇文章介绍了A
ASP.NetMVC框架配置与分析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前几年的时候A