实用主义

把.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  阅读(574)  评论(0编辑  收藏  举报