我試圖檢查一箇中繼器內的字符串值,如果它有值然後寫一個鏈接,但似乎無法讓它工作。如果myUrl中有值,那麼我想顯示鏈接。#Eval if repeater repeater
<%if(%> <%#Eval("myURL").ToString().Length > 0 %>
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>">my link</a>
<% } %>
任何人都可以請幫忙嗎?
我試圖檢查一箇中繼器內的字符串值,如果它有值然後寫一個鏈接,但似乎無法讓它工作。如果myUrl中有值,那麼我想顯示鏈接。#Eval if repeater repeater
<%if(%> <%#Eval("myURL").ToString().Length > 0 %>
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>">my link</a>
<% } %>
任何人都可以請幫忙嗎?
試試這個代碼!!!
<%#Eval("myURL").ToString().Length > 0 ?
"<a title='myTitle' target='_blank' href='<%# Eval("myURL") %>'>my link</a>":""%>
我個人討厭在頁面中使用條件邏輯。
有兩種選擇,我認爲更好。您可以在中繼器中使用超鏈接控制 - 並根據myURL參數是否存在來設置可見性。
visibility='<% #Eval("myURL").ToString().Length > 0 %>'
或者你可以做的是有你的「myURL」參數回調背後,你的代碼的方法。
E.g.
public string CreateURL(string myURL){
if(!string.IsNullOrEmpty(myURL)){
return "<a ... ";
}
return string.Empty;
}
並調用ASPX
<%# CreateURL(Eval("myURL").ToString()) %>
NB這是未經測試的代碼,但是這是我平時做這樣的事情的方式。
這應該是答案 – 2017-09-22 13:54:14
嘗試添加runat="server"
,然後添加一個腳本塊(新的)服務器端的Visible屬性:
<a title="myTitle" target="_blank" href="<%# Eval("myURL") %>" runat="server" visible='<%#Eval("myURL").ToString().Length > 0 %>'>my link</a>
我會使用String.Format並將HTML作爲字符串的一部分。誠然,這不是最巧妙的一段代碼寫過,但在我看來這是最好的選擇:
例如下面將輸出一個錨標記,如果該屬性網址存在,否則它會輸出一個跨度。
<%# string.Format(Eval("Url") != null ? "<a href=\"{0}\">{1}</a>" : "<span>{1}</span>", Eval("Url"), Eval("Text")) %>">
您也可以打電話給你的公共職能裏面的代碼隱藏文件:
<%# MyFunction(Eval("myURL").ToString().Length) %>
工作的偉大 - 非常感謝! – Wildcat 2012-02-15 09:29:45
技術上正確,但真正淫穢的外觀.. – 2012-02-15 12:05:35
我希望很多人從不使用條件聲明......多數民衆贊成的問題... – Madhu 2012-02-16 04:30:58