比较中继器 c# 中条件运算符中的两个 Eval 值

本文关键字:两个 Eval 中继器 条件运算符 比较 | 更新日期: 2023-09-27 18:35:39

我试过了:

<option value="<%# Eval("DataID")%>" selected="(<%# Eval("NewID")%>==<%# Eval("DataID")%>)?'selected':''"> <%# Eval("ColorName")%></option>

但是输出我正在得到(检查元素)

<option value="13047" selected="(13050==13047)?'selected':''"> ..BLACK</option>
<option value="13048" selected="(13050==13048)?'selected':''"> .CHARCOAL</option>
<option value="13049" selected="(13050==13049)?'selected':''"> BANANA</option>

有没有其他方法可以在中继器中使用条件运算符或 If 条件

比较中继器 c# 中条件运算符中的两个 Eval 值

试试这个:

selected='<%# Eval("NewID").ToString() == Eval("DataID").ToString() ?  "selected" : "" %>'

编辑:

好吧,我的html有点生疏:=)尽管上面的代码在语法上是正确的,但它不会产生所需的结果,即选择指定的option。像这样的很可能是OP想要实现的:

<option value='<%# Eval("DataID")%>' '<%# Eval("NewID").ToString() == Eval("DataID").ToString() ?  "selected" : "" %>'>

尝试这样

selected='<%= Eval("NewID")==Eval("DataID")) ? String.Format("{0}","selected") : String.Empty %>'

在 HTML 脚本中,您需要在单引号和双引号方面保持一致。

基本上你需要执行:

    Eval("NewID") == Eval("DataID") ? "Your True Value" : "Your False Value"

所以,用 scriplet 和 ' - 单引号装饰关于声明

    '<%# Eval("NewID") == Eval("DataID") ? "Your True Value" : "Your False Value" %>'

对于 HTML(aspx) 页中 Eval() 的语法:

http://msdn.microsoft.com/en-us/library/4hx47hfe(v=vs.110).aspx