实用主义

把.Net用好用足

导航

公告

随笔分类

随笔档案

最新评论

统计

常用链接

阅读排行榜

评论排行榜

数据绑定表达与javascript字符串连用

引自http://www.velocityreviews.com/forums/t122096-simple-but-baffling-javascript-prob.html

如果直接使用:

<a href='#' onClick="passValue('<%# DataBinder.Eval(Container.DataItem,"file_no")%> ');return false" >
<%# DataBinder.Eval(Container.DataItem,"sort_nm") %> </a>

生成的代码就像:

<a href='#' onClick="passValue('<%# DataBinder.Eval(Container.DataItem,"file_no")%> ');return false" >
XXXXX</a>

其中前一段的数据绑定表达式没有被解析。

解决方案有两种:

一、使用HTML元素的自定义属性

<a href='#' onClick="passValue(this);return false"  param1='<%# DataBinder.Eval(Container.DataItem,"file_no")%> '>
<%# DataBinder.Eval(Container.DataItem,"sort_nm") %> </a>

修改passValue,使用param1属性来取值。

二、使用javascript的"+"运算重排HTML(引文所提未验证)

 <a href='#' onClick=
"passValue('"
+
<% # DataBinder.Eval(Container.DataItem,"file_no")%>
+
"');return false" >

<%# DataBinder.Eval(Container.DataItem,"sort_nm") %> </a>

 三、把字符拼接放到服务器代码里面

 <a href='#' onClick='<%# "passValue(""" & DataBinder.Eval(Container.DataItem,"file_no") & """);return false"%> ' >

<%# DataBinder.Eval(Container.DataItem,"sort_nm") %> </a>

 

四、用DataRowBound事件

灵活性最大的解决办法,要怎么就怎么样 

posted on 2010-06-06 20:36 Render 阅读(95) 评论(0) 编辑 收藏