簡體   English   中英

asp.net-如何在ListItem文本屬性中呈現html標簽?

[英]asp.net - How to render html tags in a ListItem text property?

我有一個通過服務器端填充的DropDownList控件。

我使用一個For Each [datarow]循環並創建一個新的ListItem

在DataRow中是ID為“ Title”的列; 此字段可以包含<B>或<I>標記。 (例如“ <i> [父標題] </ i>中的[標題]”)

我面臨的問題是當我[DropDownList] .Controls.Add([ListItem])照原樣呈現文本時,...因此它按原樣顯示<B>或<I>標記,並且不以粗體/斜體顯示字體。

我嘗試到處尋找答案,有人可以指出正確的方向嗎?

在hhtml代碼中,DropDownList控件呈現為select元素,而ListItem控件呈現為option元素。 option元素不支持文本中的html格式。 某些瀏覽器可能支持整個option文本的某些樣式,但沒有瀏覽器支持部分文本的樣式。

如果您需要下拉列表中的html格式,則必須使用DHTML來制作自己的替換下拉列表控件,或者找到已經完成此操作的人。

您可以嘗試將樣式屬性添加到每個列表項,但是我不確定在不同的瀏覽器中對此樣式的支持程度如何。

ListItem li = new ListItem(dr["Name"], dr["Course"]);
if (bold) li.Attributes.Add("style", "font-weight:bold");
listcontrol.Items.Add(li);

重新閱讀您的問題,我注意到您想在列表中的單個項目中混合使用普通和粗體文本。 我幾乎可以肯定,使用標准下拉列表不支持此功能。 我認為您需要使用基於CSS的控件來模擬下拉列表。

實際上,這是不可能的。

盡管它們有一些次要的缺點,但您有幾種選擇,因為它們的行為並不完全像下拉列表。 在大多數解決方案中,您只能用鼠標選擇一個選項,而不用輸入幾個字符。 當然可以對此行為進行編程,但這需要一些時間和精力。

我發現的替代方法是:

marghoob suleman的jQuery解決方案

桑切斯薩爾瓦多的jQuery解決方案

如果您需要粗體和斜體格式,建議您使用.net Literal控件作為下拉列表的占位符。 然后,在回發或進行數據綁定時,您可以遍歷結果集,手動生成HTML代碼(因為它並不那么復雜),然后將生成的HTML插入Literal控件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM