【求助】“<”为什么被转换成了“<”?

灵雨飘零 2011-11-01 11:16:33
今天遇到了一个以前没遇到过的问题,页面前台代码如下:

  <asp:LinkButton ID="lBtnAdd" runat="server" OnClientClick="OpenAddEdit(this,'添加块','AddEdit.aspx?sysId= <%=SYS_ID%>');return false;">添加</asp:LinkButton>


<%=SYS_ID%>为绑定后台的一个传递参数。

但是怎么也获取不到这个值,但是不放在脚本中就可以获取到,查看了一下网页源文件发现

<a onclick="OpenAddEdit(this,'添加模块','AddEdit.aspx?sysId= <%=SYS_ID%>');return false;" id="ctl00_cplButton_lBtnAdd" )">添加</a>


“<”为什么被转换成了“<”?如何解决这个问题??






...全文
3442 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
灵雨飘零 2011-11-02
  • 打赏
  • 举报
回复
谢谢大家。问题解决了。。结贴给分哈~~~~~~~
代码小天王 2011-11-02
  • 打赏
  • 举报
回复
服务端控件不能那样写。服务端控件最终是page的私有强类型字段,解析的时候不认识你的小脚本,只会当成一个string
阿非 2011-11-01
  • 打赏
  • 举报
回复
<asp:LinkButton ID="lBtnAdd" runat="server" OnClientClick="OpenAddEdit(this,'添加块','AddEdit.aspx?sysId= <%=SYS_ID%>');return false;">添加</asp:LinkButton>
=>
<script>
var sysId='<%=SYS_ID%>';
</script>

<asp:LinkButton ID="lBtnAdd" runat="server" OnClientClick="OpenAddEdit(this,'添加块','AddEdit.aspx?sysId='+sysId);return false;">添加</asp:LinkButton>


  • 打赏
  • 举报
回复
如果没有runat="server"就可以,因为服务端控件解析成Html和服务端表达式<% %>不是同一时刻进行的
md5e 2011-11-01
  • 打赏
  • 举报
回复
jS的另一种写法

document.getElementById("lBtnAdd").onclick=function()
{
OpenAddEdit(this,'添加块','AddEdit.aspx?sysId= <%=SYS_ID%>');
}
PatrickCao 2011-11-01
  • 打赏
  • 举报
回复
服务器端控件, 所以被转义了
孟子E章 2011-11-01
  • 打赏
  • 举报
回复
你还可以这样
<asp:LinkButton ID="lBtnAdd" runat="server" OnClientClick=<%# "OpenAddEdit(this,'添加块','AddEdit.aspx?sysId=" + SYS_ID + "');return false;"%>>添加</asp:LinkButton>

然后
protected void Page_Load(object sender, EventArgs e)
{
lBtnAdd.DataBind();
}
孟子E章 2011-11-01
  • 打赏
  • 举报
回复
js

function OpenAddEdit() {
url = "AddEdit.aspx?sysId=<%=SYS_ID %>";
}
灵雨飘零 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fangxinggood 的回复:]
因为这个服务端控件是在后台解析的。要么像net_lover说的那样,直接放到后台添加。
要么,改用在javascript里赋值。
[/Quote]

在JS里面如何赋值呢?
机器人 2011-11-01
  • 打赏
  • 举报
回复
因为这个服务端控件是在后台解析的。要么像net_lover说的那样,直接放到后台添加。
要么,改用在javascript里赋值。

灵雨飘零 2011-11-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 net_lover 的回复:]
应该在后代码里面进行写
lBtnAdd.OnClickClient="OpenAddEdit(this,'添加块','AddEdit.aspx?sysId=" + SYS_ID + "');return false;";
[/Quote]

在前台代码中如何写呢??
孟子E章 2011-11-01
  • 打赏
  • 举报
回复
应该在后代码里面进行写
lBtnAdd.OnClickClient="OpenAddEdit(this,'添加块','AddEdit.aspx?sysId=" + SYS_ID + "');return false;";
灵雨飘零 2011-11-01
  • 打赏
  • 举报
回复
自己顶一下!!

62,046

社区成员

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

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

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

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