当前位置:编程学习 > C#/ASP.NET >>

如何给通用控件赋值?

我所说的通用控件是指WEB控件,可能是TextBox,也可以是DropDownList,也可能是CheckBox

protected void Button1_Click(object sender, EventArgs e)
    {
        setValue(TextBox1);//这里可能是TextBox,也可以是DropDownList,也可能是CheckBox

    }

    public void setValue(WebControl c)
    {
        //给通用控件c赋值
         ??这里不知道如何写
    } --------------------编程问答-------------------- 转换为具体的控件赋值,并不是所有控件都有所谓的赋值操作 --------------------编程问答--------------------
引用 1 楼 Return_false 的回复:
转换为具体的控件赋值,并不是所有控件都有所谓的赋值操作

+1 --------------------编程问答-------------------- 每一个(类)控件都有几十个或者上百个属性可以赋值。如果你连给什么东西赋值都搞错了,那么你说的就没有意义了。 --------------------编程问答-------------------- Refer this:


more details:
http://www.cnblogs.com/insus/archive/2013/06/10/3130925.html --------------------编程问答--------------------
引用 4 楼 insus 的回复:
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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,