我试过了:
<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条件
答案 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