2012-04-13 45 views
0

我有一個下拉列表,但關閉選項標籤丟失。這將導致該網站失敗W3C驗證對XHTML 1.1下拉菜單丟失關閉選項標籤

這是我的HTML:

<select> 
    <option value="">Select... 
    <option value="val1">Value One 
    <option value="val2">Value Two 
</select> 

,我希望這樣的:

<select> 
    <option value="">Select...</option> 
    <option value="val1">Value One</option> 
    <option value="val2">Value Two</option> 
</select> 

我曾經嘗試都HtmlSelectDropDownList。我曾嘗試添加ListItem和數據綁定以填充它,但每次都獲得相同的HTML。

任何想法可能會造成這種情況?

編輯

我使用.NET 3.5,該網站是一個Sitecore的網站。

這是我的DOCTYPE聲明:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

填充像這樣:

HtmlSelect dropdown = new HtmlSelect(); 
dropdown.ID = _Data.ControlID; 

List<DataCollectionItem> lisItemCollection = new List<DataCollectionItem>(); 

foreach (DataCollectionItem item in lisItemCollection) 
    dropdown.Items.Add(new ListItem(item.Text, item.Value)); 

曾嘗試過,有相同的結果:

dropdown.DataSource = lisItemCollection; 
dropdown.DataTextField = "Text"; 
dropdown.DataValueField = "Value"; 
dropdown.DataBind(); 

瀏覽器文件:

F orm.browser

<browsers> 
    <browser refID="Default"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="Sitecore.Web.FormAdapter, Sitecore.Kernel" /> 
    </controlAdapters> 
    </browser> 
</browsers> 

w3cValidator.browser

<browsers> 
    <!-- Browser capability file for the w3c validator 
     sample UA: "W3C_Validator/1.305.2.148 libwww-perl/5.803" 
    --> 
    <browser id="w3cValidator" parentID="default"> 
    <identification> 
     <userAgent match="^W3C_Validator" /> 
    </identification> 

    <capture> 
     <userAgent match="^W3C_Validator/(?'version'(?'major'\d+)(?'minor'\.\d+)\w*).*" /> 
    </capture> 

    <capabilities> 
     <capability name="browser" value="w3cValidator" /> 
     <capability name="majorversion" value="${major}" /> 
     <capability name="minorversion" value="${minor}" /> 
     <capability name="version" value="${version}" /> 
     <capability name="w3cdomversion" value="1.0" /> 
     <capability name="xml" value="true" /> 
     <capability name="tagWriter" value="System.Web.UI.HtmlTextWriter" /> 
    </capabilities> 
    </browser> 
</browsers> 
+6

你可以發佈你用來生成標記的代碼嗎? – Craig 2012-04-13 15:07:06

+1

我的猜測是你使用的是一個(非常)舊版本的ASP.NET。它是什麼版本? – Domenic 2012-04-13 15:08:53

+1

你看過你的應用程序的App_Browsers文件夾嗎?在那裏可能有一個.browser文件,聲明一個覆蓋你的DDL和HtmlSelect的自定義適配器。 – jbl 2012-04-13 15:22:56

回答

0

原來,這個問題是由於HTML敏捷包。

HtmlNode.ElementsFlags.Remove("option"); 

查看this question瞭解更多詳情。