在中使用<%=%>出错

路人甲cw 2011-04-14 01:15:18
如题,运行时提示:
控件包含代码块(即 <% ... %>),因此无法修改控件集合
...全文
305 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔡袅 2011-04-14
  • 打赏
  • 举报
回复
路人甲cw 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dalmeeme 的回复:]

我在自己的机器上试过了,没问题,看来是其他问题。
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h……
[/Quote]
嗯,这样确实是没有问题,但如果使用EXT.NET控件之后,<%%>就不能写在Head里的<script>里面了,不知道为啥
dalmeeme 2011-04-14
  • 打赏
  • 举报
回复
我在自己的机器上试过了,没问题,看来是其他问题。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
alert("<%=TextBox1.ClientID %>");
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="div1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
路人甲cw 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dalmeeme 的回复:]

去掉<head runat="server">中的runat="server",使其不成为控件。
[/Quote]
试过,无效
dalmeeme 2011-04-14
  • 打赏
  • 举报
回复
去掉<head runat="server">中的runat="server",使其不成为控件。
路人甲cw 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mockqi 的回复:]

不知道,用jquery的路过
[/Quote]
在这种情况无论是JQ还是JS使用<%%>语法都会异常
  • 打赏
  • 举报
回复
不知道,用jquery的路过
路人甲cw 2011-04-14
  • 打赏
  • 举报
回复
不好意思,我没把问题讲清楚,我干脆把例子代码拷过来吧:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="YBXB.WebForm1" %>
<%@ Register assembly="Ext.Net" namespace="Ext.Net" tagprefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
alert("<%=TextBox1.ClientID %>");
</script>
</head>
<body>

<%--<ext:ResourceManager ID="ResourceManager1" runat="server" />--%> //注释

<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

<%--<ext:Label ID="Label1" runat="server"> //注释
</ext:Label>--%>

</div>
</form>
</body>
</html>



如上面的aspx页面代码,如果我把注释取消,运行就会异常:

控件包含代码块(即 <% ... %>),因此无法修改控件集合。
堆栈跟踪:
[HttpException (0x80004005): 控件包含代码块(即 <% ... %>),因此无法修改控件集合。]
System.Web.UI.ControlCollection.AddAt(Int32 index, Control child) +8689838
Ext.Net.ResourceManager.Page_PreRenderComplete(Object sender, EventArgs e) +231
System.Web.UI.Page.OnPreRenderComplete(EventArgs e) +8872170
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint

但如果不取消注释的部分就不会报异常,不知道是咋会事,有人用EXT.NET遇到这样的问题吗?当然使用LS朋友的方式,将含有<%%>部分的JS代码放到<body></body>中就不会出问题了,但是为什么不使用EXT.NET控件时不需要这样做呢?是内部机制所致?
CtrlJava 2011-04-14
  • 打赏
  • 举报
回复
<%= 方法名 %>
gdjlc 2011-04-14
  • 打赏
  • 举报
回复
是写JS脚本吧?把这段包括<%=%>的JS放到</head>外面,如</body>下面。。。
蓝小修 2011-04-14
  • 打赏
  • 举报
回复
如果是类似于DataList绑定数据的话,应该是<%# Eval("名字")%>

如果是直接绑定后置代码中的方法,则是<%= 方法名 %>

希望对你有帮助
  • 打赏
  • 举报
回复
<%# XXX %>
子夜__ 2011-04-14
  • 打赏
  • 举报
回复
图挂了
参考

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧