当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  RadioButtonList中Radio文本颜色的设置

 RadioButtonList中Radio文本颜色的设置

点击次数:33 次 发布日期:2008-11-26 09:51:14 作者:源代码网
源代码网推荐     
源代码网推荐  如果是RadioButton,很简单的通过ForeColor就可以设置其文本的颜色,但在RadioButtonList中的Radio该怎么处理呢?
源代码网推荐  
源代码网推荐  问题:
源代码网推荐  1. RadioButtonList.Items的元素没有ForeColor属性
源代码网推荐  2. RadioButtonList.Items的元素不能转换为RadioButton类型对象
源代码网推荐  3. RadioButtonList.Items的元素的Attributes属性设置后无效
源代码网推荐  
源代码网推荐  彻底解决这个问题的办法当然是对RadioButtonList进行重写,不过,这工程也太大了。有没有其他办法呢?答案是肯定的。
源代码网推荐  
源代码网推荐  RadioButtonList.Items的每个元素都是ListItem类型,ListItem有一个属性Text,问题的解决就从这个属性入手。
源代码网推荐  
源代码网推荐  第一次解决(参见:http://community.csdn.net/Expert/topic/3197/3197484.xml?temp=.3768122):
源代码网推荐  
源代码网推荐  radioButtonList.Items(1).Text="<font color="red">"+radioButtonList.Items(1).Text+"</font>"
源代码网推荐  如果要修改背景颜色,可以使用:
源代码网推荐  
源代码网推荐  radioButtonList.Items(1).Text="<span style="background-color:blue;color:red">"+radioButtonList.Items(1).Text+"</span>"
源代码网推荐  
源代码网推荐  但这样的修改背景颜色不是很好的,因为仅仅修改了文本的颜色。
源代码网推荐  
源代码网推荐  但以上的解决,可以通过下面的函数来实现:
源代码网推荐  
源代码网推荐  Sub SetListItemStyle(liTmp as ListItem,cssStyle as string)
源代码网推荐   liTmp.Text="<span style=""+cssStyle+"">"+liTmp.Text+"</span>"
源代码网推荐  End Sub
源代码网推荐  
源代码网推荐  这样的解决,要求cssStyle是合法的,否则会有意想不到的问题出现,当然,可以在过程内部进行过滤处理。
源代码网推荐  
源代码网推荐  这个问题的最好的解决办法是重写RadioButtonList,这样难度就大了。
源代码网推荐  
源代码网推荐  另外,函数SetListItemStyle的调用最好是在事件PreRender中,但不是绝对的,具体可以根据需要自行确定。
源代码网推荐  
源代码网推荐  
源代码网推荐  楼主信人,立马结贴!
源代码网推荐  
源代码网推荐  紧接着,楼主发现新问题:想修改颜色或回复颜色的时候无效了,分析导致问题的原因,第二次解决如下(http://community.csdn.net/Expert/topic/3201/3201217.xml?temp=.3404962):
源代码网推荐  
源代码网推荐  你的问题提得很及时呀,呵呵。
源代码网推荐  
源代码网推荐  我后来也发现了这个问题,比如,你第一次设置红色,第二次想设置为兰色,这个时候:
源代码网推荐  
源代码网推荐  假设radioButtonList1.Items(1).Text的内容为"abc"字符串
源代码网推荐  
源代码网推荐  第一次处理:
源代码网推荐  radioButtonList1.Items(1).Text="<font color="red">"+radioButtonList1.Items(1).Text+"</font>"
源代码网推荐  后,radioButtonList1.Items(1).Text变为:
源代码网推荐  "<font color="red">abc</font>"
源代码网推荐  
源代码网推荐  再处理,设置为兰色:
源代码网推荐  radioButtonList1.Items(1).Text="<font color="blue">"+radioButtonList1.Items(1).Text+"</font>"
源代码网推荐  因为第一次处理的结果,经过这次处理后,radioButtonList1.Items(1).Text的内容为:
源代码网推荐  "<font color="blue"><font color="red">abc</font></font>"
源代码网推荐  
源代码网推荐  所以,无论你怎么改变,颜色都是第一次设置的红色,而且在经过多次的设置后,导致Text的内容非常的庞大,确实苦恼!!!
源代码网推荐  
源代码网推荐  
源代码网推荐  下面是我的新的解决方案:
源代码网推荐  
源代码网推荐  dim m_hgcC as new System.Web.UI.HtmlControls.HtmlGenericControl()
源代码网推荐  
源代码网推荐  m_hgc.innerHtml=radioButtonList1.Items(1).Text
源代码网推荐  
源代码网推荐  radioButtonList1.Items(1).Text="<font color="red">"+m_hgc.innerText+"</font>"
源代码网推荐  
源代码网推荐  
源代码网推荐  这个方法稍微复杂,但彻底的解决了上面你提出的问题,无论你进行多少次的设置都能成功,而且保证了radioButtonList1.Items(1).Text内容不会无端的膨胀。
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  巧妙的利用Html控件的innerHtml和innerText两个属性最终解决这个问题。
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华