“HtmlSelect”不能有类型为“DataBoundLiteralControl”的子级。

“HtmlSelect”不能有类型为“DataBoundLiteralControl”的子级。或者“HtmlSelect”不能有类型为“LiteralControl”的子级
在早几天的工作中碰到了这个问题:
如果在select中添加runat=server就会报错:“HtmlSelect”不能有类型为“LiteralControl”的子级。
但是如果不添加runat=server,那么在后台就会找不到这个控件。

在网上搜了搜,用以下方法去解决这个问题:
在页面中放一个hidden,如果select改变后,把select的值赋给hidden。

--------------------------------------------------------------------------------------------------------------------------------------------
< input  id ="provinceHidden"  type ="hidden"  name ="provinceHidden"  runat ="server" >  

< select  id ="province"  onchange ="window.document.Form1.provinceHidden.value=this.options[this.selectedIndex].value;"  name ="province" >
< option  value ="Not set"  selected > 选择省份 </ option >
</ select >

protected  System.Web.UI.HtmlControls.HtmlInputHidden provinceHidden;
 

你可能感兴趣的:(select)