RadioButtonList中Radio文本颜色的设置

时间:2010-03-03 12:19:49  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:dioButtonList.Items的元素不能转换为RadioButton类型对象   3. RadioButtonList.Items的元素的Attributes属性设置后无效      彻底解决这个问题的办法当然是对RadioButtonList进行重写,不过,这工程也太大了。有没有其他办法呢?答案是肯定的。      RadioButtonList.Items的每个元素都是ListItem类型...
  正文:如果是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内容不会无端的膨胀。 《RadioButtonList中Radio文本颜色的设置》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/13003.html


关键字:

关于《RadioButtonList中Radio文本颜色的设置》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td