日期:2014-05-17  浏览次数:20471 次

<% %>里怎么嵌套使用<%#Eval("username") %>
<% string[] strs = (Eval("tags").ToString()).Split(',');

提示Eval前是必须要加#号的,但是加了#号,就不能在<% %>里写语句了,因为要写语句就不能有#Eval ,我晕,冲突了

------最佳解决方案--------------------
如果实在不行    就在后台定义一个方法
public string getTags(string str)
{
   string[] strs = str.Split(','); 
   ......
   ......
   return 返回你要显示在页面的东西;
}

页面上
<%#getTags(Eval("tags").ToString())%> 
------其他解决方案--------------------
<%# string[] strs = (Eval("tags").ToString()).Split(',');
------其他解决方案--------------------
引用:
为什么要这样给变量赋值?


+1

同问
------其他解决方案--------------------
引用:
你执行方法,少了一个#
问下:前台只是单纯的信息展示,为什么要在前台做复杂的方法运算?



+1 
------其他解决方案--------------------
直接这样就是了啊
<%#Eval("tags").ToString().split(',')%>
------其他解决方案--------------------
为什么要这样给变量赋值?
------其他解决方案--------------------
你执行方法,少了一个#
问下:前台只是单纯的信息展示,为什么要在前台做复杂的方法运算?
------其他解决方案--------------------
回复以上:我为什么要做这复杂的方法运算呢?
因为我做了个小微博的网站,发表了博文后,上边是博文,下边是tags,就是标签啦,而标签是用逗号分隔开了关键字,如 吴奇隆,向着炮火前进,抗日
而前台aspx页面我是用Reapter的<itemtempled><%#Eval("tags")%></itemtempled>显示
注意蓝色字,如果这样写的话,最终客户端会显示“吴奇隆,向着炮火前进,抗日”,而我想把他们分开Split,
于是,就有了这个问题。
有人说了,为什么复杂的这个不在后台做?那我请问了:这个tags字段在后台怎么取啊?取不到哇,如果只有一个也好办我有办法取,但是这是在reapter里的循环里的啊,后台就太麻烦了吧,所以我想在前台把这个<%#Eval("tags") %>给split(',')了,但要是想写语句,就必须在<%%>里写,而<%%>语句是不允许出现#的,出现#就是绑定数据库字段了。所以冲突了,而度娘谷哥找不到,只好发文问兄~~~天问啊

------其他解决方案--------------------
乔布斯先生你的回答我试过了,不行,
因为你想想,微软规定了:百分号里如果没有#Eval,表示的是执行语句。但是如果有#号,就是表示显示数据库里绑定的一个字段的值,你想想,你在#号里有分号(表示语句结束),有分号了,它显示个鸟啊呵呵,会提示出错的,
事实如此,VS2008里提示出错,我就不复制错误信息了,这个错的太离谱,VS提示了有9个错误,如果删掉#号,9个错误会立即消失,但是运行网站会提示Eval必须加#

------其他解决方案--------------------
引用:
直接这样就是了啊
<%#Eval("tags").ToString().split(',')%>

但是我想给每个数组成员加个<a href>啊,所以我要
<!--显示标签的链接代码-->
                    <%# string[] strs = (Eval("tags").ToString()).Split(','); %>                    <% for (int i = 0; i < strs.Length; i++){%>
                        <a href="htm/list.aspx?tag=<% =Server.UrlEncode(strs[i]) %>"><% =strs[i] %></a>
                    <%}%>
------其他解决方案--------------------