当前位置:首页 > 网络编程 > WEB编程 > ASP.net > web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

点击次数:15 次 发布日期:2008-11-26 23:43:21 作者:源代码网
源代码网推荐 1.组件源文件 IPostTest.cs
源代码网推荐
源代码网推荐1using System;
源代码网推荐2using System.Web.UI;
源代码网推荐3using System.Web.UI.WebControls;
源代码网推荐4using System.ComponentModel;
源代码网推荐5
源代码网推荐6namespace MyWebControl
源代码网推荐7{
源代码网推荐8 /// <summary>
源代码网推荐9 /// IPostTest 的摘要说明。
源代码网推荐10 /// </summary>
源代码网推荐11 [DefaultProperty("Text"),
源代码网推荐12 ToolboxData("<{0}:IPostTest runat=server></{0}:IPostTest>")]
源代码网推荐13 public class IPostTest : System.Web.UI.WebControls.WebControl,IPostBackDataHandler
源代码网推荐14 {
源代码网推荐15 private string user;
源代码网推荐16 private string pwd;
源代码网推荐17
源代码网推荐18 // 控件名称设置
源代码网推荐19 private string UserName
源代码网推荐20 {
源代码网推荐21 get
源代码网推荐22 {
源代码网推荐23 return this.UniqueID + ":user";
源代码网推荐24 }
源代码网推荐25 }
源代码网推荐26
源代码网推荐27 private string PwdName
源代码网推荐28 {
源代码网推荐29 get
源代码网推荐30 {
源代码网推荐31 return this.UniqueID + ":pwd";
源代码网推荐32 }
源代码网推荐33 }
源代码网推荐34
源代码网推荐35 // 公共属性
源代码网推荐36 public string UserValue
源代码网推荐37 {
源代码网推荐38 get
源代码网推荐39 {
源代码网推荐40 return user;
源代码网推荐41 }
源代码网推荐42 }
源代码网推荐43
源代码网推荐44 public string PwdValue
源代码网推荐45 {
源代码网推荐46 get
源代码网推荐47 {
源代码网推荐48 return pwd;
源代码网推荐49 }
源代码网推荐50 }
源代码网推荐51
源代码网推荐52 /// <summary>
源代码网推荐53 /// 将此控件呈现给指定的输出参数。
源代码网推荐54 /// </summary>
源代码网推荐55 /// <param name="output"> 要写出到的 HTML 编写器 </param>
源代码网推荐56 protected override void Render(HtmlTextWriter output)
源代码网推荐57 {
源代码网推荐58 //output.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);
源代码网推荐59 output.RenderBeginTag(HtmlTextWriterTag.Table);
源代码网推荐60 output.RenderBeginTag(HtmlTextWriterTag.Tr);
源代码网推荐61 output.RenderBeginTag(HtmlTextWriterTag.Td);
源代码网推荐62
源代码网推荐63 output.AddAttribute(HtmlTextWriterAttribute.Name,UserName);
源代码网推荐64 output.AddAttribute(HtmlTextWriterAttribute.Value,((user == null)?String.Empty:user));
源代码网推荐65 output.AddAttribute(HtmlTextWriterAttribute.Type,"text");
源代码网推荐66 output.RenderBeginTag(HtmlTextWriterTag.Input);
源代码网推荐67 output.RenderEndTag();//input
源代码网推荐68
源代码网推荐69 output.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);
源代码网推荐70 output.AddAttribute(HtmlTextWriterAttribute.Type,"hidden");
源代码网推荐71 output.AddAttribute(HtmlTextWriterAttribute.Value,"dd");
源代码网推荐72 output.RenderBeginTag(HtmlTextWriterTag.Input);
源代码网推荐73 output.RenderEndTag();//input hidden
源代码网推荐74
源代码网推荐75 output.RenderBeginTag(HtmlTextWriterTag.Br);
源代码网推荐76 output.RenderEndTag();//br
源代码网推荐77
源代码网推荐78 output.AddAttribute(HtmlTextWriterAttribute.Name,PwdName);
源代码网推荐79 output.AddAttribute(HtmlTextWriterAttribute.Value,((pwd == null)?String.Empty:pwd));
源代码网推荐80 output.AddAttribute(HtmlTextWriterAttribute.Type,"text");
源代码网推荐81 output.RenderBeginTag(HtmlTextWriterTag.Input);
源代码网推荐82 output.RenderEndTag();//input
源代码网推荐83
源代码网推荐84 output.RenderEndTag();//td
源代码网推荐85 output.RenderEndTag();//tr
源代码网推荐86 output.RenderEndTag();//table
源代码网推荐87 }
源代码网推荐88 // IPostBackDataHandler 成员
源代码网推荐89
源代码网推荐90 void IPostBackDataHandler.RaisePostDataChangedEvent()
源代码网推荐91 {
源代码网推荐92 // TODO: 添加 IPostTest.RaisePostDataChangedEvent 实现
源代码网推荐93 }
源代码网推荐94
源代码网推荐95 bool IPostBackDataHandler.LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection values)
源代码网推荐96 {
源代码网推荐97 // TODO: 添加 IPostTest.LoadPostData 实现
源代码网推荐98 user = values[UserName];
源代码网推荐99 pwd = values[PwdName];
源代码网推荐100 return false;
源代码网推荐101 }
源代码网推荐102
源代码网推荐103 }
源代码网推荐104}
源代码网推荐105
源代码网推荐2.测试方法 将组件编译后添加入自定义控件工具栏,拖入到测试页面,增加一button按钮控件,3.得出结论 当组件内部存在多个input子控件时,必须有一个子控件的 name 为 this.UniqueID,这样才能取得其他子控件的值回传。 a.当我试着将this.UniqueID加载到table上时,却取不到其子控件input的值。 b.上面的类型为hidden的input,可以取消,但必须将this.UniqueID加载到另外的任意一个控件上,否则取不到其值。 我这么加一个hidden类型的input,纯粹只是为了对应而已,没什么其他目的。 c.我实在对web控件了解不多,一步步学,不知道大家有没有遇到过我这样的问题。希望高手能够指点一下感激不尽!

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华