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

时间:2014-12-29 17:49:07

标签: c# repeater

我试过了:

<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>

还有其他方法可以在Repeater中使用条件运算符或If条件

3 个答案:

答案 0 :(得分:3)

试试这个:

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

修改

好吧,我的html有点生锈:=)虽然上面的代码在语法上是正确的,但它不会产生所需的结果,即选择指定的option。这样的事情很可能是OP希望实现的目标:

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

答案 1 :(得分:0)

以这种方式尝试

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

答案 2 :(得分:0)

在HTML scriplet中,您需要对单引号和双引号保持一致。

基本上你需要执行:

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

所以,用scriplet和&#39;来装饰声明。 - 单引号

    '<%# 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