2014-12-29 28 views
1

我想:比較兩個評估和演示值直放站C#

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

是否有使用條件運算符或任何其他方式如果直放站

+0

上面的代碼中存在語法錯誤:*

回答

3

條件試試這個:

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

編輯:

好,我的HTML是有點生疏:=)雖然上面的代碼語法正確它不會產生所希望的結果,即得到所選擇的指定option。這樣STH是最有可能的OP要達到什麼樣的:

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

throwing語法錯誤 –

+0

@AR Sekhar好了,比較可能失敗了,但語法錯誤可能是由於複製/粘貼錯誤。嘗試在應用Eval後執行ToString()。看到我編輯的答案。 –

+0

我試過@Giorgos指定的方式,但將錯誤作爲語法錯誤和表達式期望 –

0

嘗試以這種方式

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

在HTML scriplet,你需要對單引號和雙引號是一致的。

基本上你需要執行:

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

所以,裝點關於與scriplet和'語句 - 在HTML(CSS)頁單引號

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

對於eval()函數的語法:

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