日期:2014-05-19  浏览次数:20450 次

如何获取不一定存在的控件的值?
程序中RadioButtonList1是由Dropdownlist动态产生的。
比如,一系列商品品牌(设置为Dropdownlist显示),分别存在N种系列的产品(设置为RadioButtonList1单选),N有时为> 0的数,有时也=0。
那么在插入记录的时候,如何判断RadioButtonList1是否存在呢?若存在,一切好说;不存在就会出错!!!求救!

------解决方案--------------------
用FindControl( "ID "),返回null就是不存在。
------解决方案--------------------
业务逻辑要与控件分开,不要把业务数据直接用控件来保存。控件根本就跟业务数据没有直接关系。你可能使用RadioButtonList,也可能使用其它控件,根本不能把控件直接用来保存业务数据。

实际的设计例如:

string 品牌
{
get
{
if(ViewState[ "brand "]==null) return null; else return (string)ViewState[ "brand "];
}
set
{
ViewState[ "brand "]=value;
this.系列=null;
//还应该通知重建子控件
}
}

string 系列
{
get
{
if(ViewState[ "series "]==null) return null; else return (string)ViewState[ "series "];
}
set
{
ViewState[ "series "]=value;
//还应该通知重建子控件
}
}

控件读取状态值进行绑定,在控件事件中用控件值修改相应的状态值。