重写RadioButtonList服务器控件的RenderItem方法,隐藏radio元素
2012-11-29 11:22
579 查看
思路:先判断浏览器是否为IE浏览器,如果是IE浏览器就将radio元素样式为width:0px;height:0px;若不是IE浏览器就将radio元素的样式设置为display:none。
实测FF/IE浏览器效果相同
radio元素被隐藏,图中的按钮均为带css的label标签,当设置AutoPostBack=true时的回调也正常
//注释掉原来的RenderItem方法 //base.RenderItem(itemType, repeatIndex, repeatInfo, writer); bool isIE = HttpContext.Current.Request.UserAgent.ToLower().IndexOf("msie") > 0; ListItem li = Items[repeatIndex]; //回调函数的eventTarget string name = this.ClientID.Replace('_','$')+"$"+repeatIndex.ToString(); //用于radio元素的name属性 string pname = this.ClientID.Replace('_','$'); //用于radio元素的id属性及label标签的for属性 string id = this.ClientID + "_" + repeatIndex.ToString(); //定义当AutoPostBack=true时的回调 string onclick = AutoPostBack?"onclick=\"javascript:setTimeout(\'__doPostBack(\\'"+name+"\\',\\'"+li.Value+"\\')\',0)\"":""; //SelectedCssClass和ItemCssClass是我增加的两个Css,分别用于选中项的label和未选中项的label标签的class。 string css = li.Selected ? SelectedCssClass : ItemCssClass; //可以在标签外围增加新标签,如<div style=''>{0}{1}</div> string div = "{0}{1}"; //若为IE浏览器style=width:0px;height:0px; 其他浏览器style=display:none; string radio = "<input type='radio' id='"+id+"' name='"+pname+"' value='"+li.Value+"'"+onclick+" style='"+(isIE?"width:0px;height:0px;":"display:none;")+"'/>"; string label = "<label for='"+id+"' class='"+css+"'>"+li.Text+"</label>"; writer.Write(string.Format(div,radio,label));
实测FF/IE浏览器效果相同
radio元素被隐藏,图中的按钮均为带css的label标签,当设置AutoPostBack=true时的回调也正常
相关文章推荐
- 重写UITableViewCell子类中属性的setter方法来实现隐藏或显示该cell中的某些控件
- ASP.NET2.0服务器控件之Render方法
- radio控件item设置自动换行的方法
- ASP.NET2.0服务器控件之Render方法 (作者: 金属边缘 出处: 天极开发 )
- JS中的RadioButtonList(服务器控件)和Radio(html控件)操作
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- ASP.NET2.0服务器控件之Render方法
- 后台找前台服务器控件,客户端控件方法
- lazyload隐藏元素不生效处理方法
- Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项以及用到的方法总结
- 用JavaScript隐藏控件的方法
- 【jQuery】调用show()和hide()方法显示和隐藏元素
- 为服务器控件加入客户端事件处理的几种方法
- Winform Tabcontrol控件隐藏tabpage头部的方法
- radio控件清空数据的方法