当前位置:w88优德官网网文章中心网站开发.Net → web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题

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

减小字体 增大字体 作者:admin  来源:www.hack50.com  发布时间:2012-12-30 9:28:37
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控件了解不多,一步步学,不知道大家有没有遇到过我这样的问题。希望高手能够指点一下感激不尽!

本文引用网址:
在下列搜索引擎中搜索“web组件设计,利用接口(IPostBackDataHandler)产生数据回传的问题”的相关信息:
谷歌搜索 百度搜索 雅虎搜索 搜狗搜索 搜搜搜索 必应搜索 有道搜索
你可能还喜欢以下文章
  • 1如何做爱真人示范图片 男女ML常...
  • 2雨后小故事 qq表情姐弟雨后小故...
  • 3干露露不雅照 干露露艳照ed2k ...
  • 4四川美院女生遭前男友发艳照报...
  • 5实拍90后女孩拉客100元带套20分...
  • 1如何搭建第一个网站?做网站有...
  • 2网站设计中文案的重要性
  • 3V5Shop分享一个独立网店快速提...
  • 4软文通过百度新闻来流量
  • 5如何让网站被百度快速收录?百...
  • 1嫩白少妇与猛男户外疯狂车震遭...
  • 2让爱升华的真人爱爱姿势教学
  • 3林晨钰爆奶门视频qvod 林晨钰爆...
  • 4日本AV六级试卷 (附标准答案)
  • 5情侣酒店激情性爱 上演限制级影...
  • 1如何设定一个安全的log服务器
  • 2多项设置让硬盘抢抓“休息”时...
  • 3资深网管教你彻底揪出系统启动...
  • 4IIS下中文名的文件无法下载问题...
  • 5IIS服务器D4.1假静态全攻略
  • 赞助商广告

    图片文章导读