The Controls collection cannot be modified because the control contains code blocks

原来我在网页中的client javascript ,使用了 <%=%>,如下

function setField() {
  var strUrl = "InvoiceDisplayFieldSetting.aspx?oid=<%=OID%>";
  window.showModalDialog(strUrl,"setField",
  "dialogWidth:400px;dialogHeight:630px;
  center:1;scroll:0;help:0;status:0;resizable=0");
  }


在 html 中的不会有问题, 但使用了<head runat=”server”> 后, client side javacript 就不能使用
解法是override OnInit()
如下

override protected void OnInit(EventArgs e)
  {
  InitializeComponent();
  base.OnInit(e);
  Page.DataBind();
  }

然后在 client side javacript ,改用 <%# OID%>
大功告成

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>