如何在ASP.NET中创建WebControl中的公共属性绑定到表单的输入元素?
问题描述:
简而言之,我想创建一个可能在输入表单中多次出现的WebControl。我编写的WebControl具有与Web控件中的值(文本框等)相关的属性。我想要做的是在我的提交中按名称访问WebControl的输入元素的内容处理程序如下:如何在ASP.NET中创建WebControl中的公共属性绑定到表单的输入元素?
var firstname = customControl.FirstName;
var lastname = customControl.LastName;
我来自WPF背景,所以这只是很熟悉,我陷入了麻烦。
答
这是我的头顶(在其他语言几个月后回到.NET),并且我假设它是用于用户控件的,因为服务器控件对于属性有很好的文档记录。
首先,假设您的用户控件具有文本框txtFirst
和txtLast
。
在代码隐藏中,添加公共属性FirstName和LastName。物业看起来是这样的:
public string FirstName {
get { return this.txtFirst.Text.Trim(); }
set { this.txtFirst.Text = value ?? ""; }
}
public string LastName {
get { return this.txtLast.Text.Trim(); }
set { this.txtLast.Text = value ?? ""; }
}
就是这样。如果你没有询问用户控件,我很抱歉。
添加这些复合控件的最佳方式是什么? – Firoso 2013-03-13 01:21:48
我发现的一个示例表明使用ViewState是一个好主意? 得到 String s =(String)ViewState [“StartDate”]; return((s == null)?String.Empty:s); } set { ViewState [“StartDate”] = value; } – Firoso 2013-03-13 01:22:32
@Firoso - 至于“添加这些复合控件”,我不太清楚你的意思。至于视图状态,你一定可以使用它。作为一个事实,这就是我通常如此做的事情。但在这种情况下,我想你想在文本框的基础上值,为什么不把它们存储在那里?他们将在回发中提供给包含表单。如果你的视觉控件没有表现出一个值,那么你一定要使用视图状态,而你给出的例子看起来是正确的。 – 2013-03-13 01:30:15