首页 新闻 会员 周边

<td><%# Eval("Status").ToString

0
[已解决问题] 解决于 2011-02-16 11:02

如标题所示:

原来的语句为

<td><%# Eval("Status").ToString()%></td>

现在需要改成判断它的值,如果为1 则显示“需要加紧”,如果为2,则显示“已经完成”,如果3,则显示“状态3”,如果是4····依次类推。

我用的是switch的写法,报错了,请大家帮我看看哦。

<td><%
switch (int.Parse(Eval("Status").ToString()))
{
case 1:<%# Eval("已受理待跟进").ToString()%>;break;

}

%>
</td>
soarymz的主页 soarymz | 初学一级 | 园豆:0
提问于:2011-02-15 17:51
< >
分享
最佳答案
0
dudu那样写会提示你switch表达式错误,我也不会那样写,
反正有Eval的时候就在<%后面紧跟一个#,其余的就不用加了,
但是你加#后,就会提示你switch表达是错误,
暂时给你三种办法:
(啥时候知道dudu那种写法好用了告诉我声嗯)
一、使用三元表达式,多层嵌套(容易绕哈)。
二、在你的数据绑定控件外侧声明一个枚举
<script runat="server" type="text/C#">
public enum GetStatus { 结果1 = 1, 结果2 = 2 }
</script>
然后在数据绑定列,例如模版列写:
<%# (GetStatus)Enum.Parse(typeof(GetStatus), Eval("Status").ToString())%>
三、在你的数据绑定控件外侧声明一个方法
<script runat="server" type="text/C#">
public string getStr(string str)
{
string _str = string.Empty;
switch (Convert.ToInt32(str))
{
case 1:
_str
= "结果1";
break;
case 2:
_str
= "结果2";
break;
default:
_str
= "结果default";
break;
}
return _str;
}
</script>
然后在数据绑定列,例如模版列写:
<%#getStr(Convert.ToString(Eval("Status")))%>

后两种方法最好写在后台,放前台乱七八糟的,嗯
cnb_mtime | 初学一级 |园豆:58 | 2011-02-16 09:54
是的,应该另外写个方法。
dudu | 园豆:31007 (高人七级) | 2011-02-16 10:10
@dudu:这些东西我也绕晕了
cnb_mtime | 园豆:58 (初学一级) | 2011-02-16 10:12
先用你的第二种方法,谢谢大家热心帮助~
soarymz | 园豆:0 (初学一级) | 2011-02-16 11:02
@soarymz:嗯,我们平时也基本用的第二种,不明白再交流嗯
cnb_mtime | 园豆:58 (初学一级) | 2011-02-16 11:03
其他回答(2)
0

在后台写个方法吧

artwl | 园豆:16736 (专家六级) | 2011-02-15 17:53
0

case 1:<%="已受理待跟进"%>;break;

dudu | 园豆:31007 (高人七级) | 2011-02-15 18:22
这样写是正确的,指定的字符串不需要Eval绑定了。
支持(0) 反对(0) 坤坤 | 园豆:919 (小虾三级) | 2011-02-15 23:58
<td><% switch (int.Parse(Eval("Status").ToString())) { case 1: <%="已受理待跟进"%> ;break; } %> </td> 改成这样后会报错哦,好像是<%识别上出错了
支持(0) 反对(0) soarymz | 园豆:0 (初学一级) | 2011-02-16 09:41
@soarymz:嗯,这样写还是有问题,将switch的判断放在方法中吧,<%# GetStatus(Eval("Status").ToString()) %>
支持(0) 反对(0) dudu | 园豆:31007 (高人七级) | 2011-02-16 09:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册