如何给通用控件赋值?
我所说的通用控件是指WEB控件,可能是TextBox,也可以是DropDownList,也可能是CheckBoxprotected void Button1_Click(object sender, EventArgs e)
{
setValue(TextBox1);//这里可能是TextBox,也可以是DropDownList,也可能是CheckBox
}
public void setValue(WebControl c)
{
//给通用控件c赋值
??这里不知道如何写
} --------------------编程问答-------------------- 转换为具体的控件赋值,并不是所有控件都有所谓的赋值操作 --------------------编程问答--------------------
+1 --------------------编程问答-------------------- 每一个(类)控件都有几十个或者上百个属性可以赋值。如果你连给什么东西赋值都搞错了,那么你说的就没有意义了。 --------------------编程问答-------------------- Refer this:
more details:
http://www.cnblogs.com/insus/archive/2013/06/10/3130925.html --------------------编程问答-------------------- 同意! --------------------编程问答-------------------- Insus.NET现对昨天提供的方案,再重构了一下。把接口与适配器分隔藕合性,改为控件在适配器new实例时,传入,而值只作适配器中方法传入。参考下面链接文章后半部续加内容:
http://www.cnblogs.com/insus/archive/2013/06/10/3130925.html --------------------编程问答-------------------- 其实jQuery就有这种功能
$("#aaa").val("管他是啥呢,都能赋值")
所以我们借鉴一下就可以了。
方法有很多,比如用扩展函数,用自定义服务器控件。
还有就是写case判断类型
public void setValue(WebControl c)
{
if ( c as TextBox)
{
((TextBox)c).Text = "aaa"
}
else if ( c as DropDownList)
{
((DropDownList)c).selectedValue = "1"
}
}
以上代码纯手写,大概是这个意思吧。
如何你能啃动jQuery源码的话,可以看看他是怎么实现的。
==============
我是使用自定义服务器控件来实现的,定义一个接口,然后写一个服务器控件,继承TextBox,并且实现接口。
这个太麻烦了,每种控件都得折腾一遍,而且还得修改页面上的<textbox>
补充:.NET技术 , ASP.NET