请教自定义控件问题,IPostDataHandler接口和IPostDataEventHandler接口。

wnglish 2003-05-19 10:21:32
下面是msdn上面的自定义控件源代码,在aspx页面引用它后,运行aspx页面,该句if (!presentValue.Equals(postedValue))报错,错误信息:System.NullReferenceException: 未将对象引用设置到对象的实例。


---------------------------------下面是代码---------------------------------

using System;
using System.Web;
using System.Web.UI;
using System.Collections.Specialized;

namespace CustomControls{
public class MyTextBox: Control, IPostBackDataHandler {
public String Text {
get {
return (String) ViewState["Text"];
}
set {
ViewState["Text"] = value;
}
}

public event EventHandler TextChanged;

public virtual bool LoadPostData(string postDataKey,
NameValueCollection values) {
String presentValue = Text;
String postedValue = values[postDataKey];
if (!presentValue.Equals(postedValue)){
Text = postedValue;
return true;
}
return false;
}

public virtual void RaisePostDataChangedEvent() {
OnTextChanged(EventArgs.Empty);
}

protected virtual void OnTextChanged(EventArgs e){
if (TextChanged != null)
TextChanged(this,e);
}

protected override void Render(HtmlTextWriter output) {
output.Write("<INPUT type= text name = "+this.UniqueID
+" value = " + this.Text + " >");
}
}
}
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wnglish 2003-05-20
  • 打赏
  • 举报
回复
如果是这样的话,应该编译时就出错啊。
这个是msdn上面的代码,晕,也出错。。。
waki 2003-05-20
  • 打赏
  • 举报
回复
public virtual bool LoadPostData是虚函数,可能要求在使用中重载它,不然可能找不到对象。
wnglish 2003-05-19
  • 打赏
  • 举报
回复
up
wnglish 2003-05-19
  • 打赏
  • 举报
回复
public virtual bool LoadPostData(string postDataKey,
NameValueCollection values)
postDataKey是标识控件的关键字,values为包含发送数据的集合。具体是的什么意思,我认为 postedValue = values[postDataKey]结果应为Object对象,也就是控件实例名,但又好象不对,请教各位
wnglish 2003-05-19
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧