知识大全 让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 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在开发应用程
ASP.NET让网页弹出窗口不再困难 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 由于项目要用
ASP.NET揭秘ASP.NET页面的结构 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TheSt
ASP.NET底层架构探索之进入ASP.NET 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! A
控件标签间的内容有的时候处理成节点有的时候处理成子控件如间的节点就会处理成属性Text的值而如Panel这样的控件则就是将其处理成子控件首先看如何处理成属性的 一处理成为属性 对于控件标签间的
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)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!