2012-04-13 8 views
0

Ich habe eine Dropdown-Liste, aber die Closing-Option Tags fehlen. Dies bewirkt, dass die Website W3C Validation gegen XHTML scheitern 1.1Drop-Down fehlende Option Tag

Das ist mein HTML:

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

, wo ich dies erwartet:

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

Ich habe versucht, beide HtmlSelect und DropDownList. Ich habe versucht, ListItem und Datenbindung hinzuzufügen, um es zu füllen, aber ich bekomme jedes Mal das gleiche HTML.

Irgendeine Idee was könnte das verursachen?

EDIT

ich .NET 3.5, die Website verwendet, ist eine Website Sitecores.

Dies ist meine Doctype-Deklaration:

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

wie diese Bestücken:

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

dies auch versucht haben, mit dem gleichen Ergebnis:

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

Browser Dateien:

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

Können Sie den Code posten, den Sie zum Generieren des Markups verwenden? – Craig

+1

Meine Vermutung ist, dass Sie eine (sehr) alte Version von ASP.NET verwenden. Welche Version ist es? – Domenic

+1

Haben Sie im Ordner App_Browsers Ihrer Anwendung gesucht? Es könnte eine .browser-Datei geben, die einen benutzerdefinierten Adapter deklariert, der Ihre DDL und HtmlSelect überschreibt. – jbl

Antwort

0

Es stellt sich heraus, das Problem aufgrund der HTML Agility Pack war.

HtmlNode.ElementsFlags.Remove("option"); 

Weitere Details finden Sie unter this question.

Verwandte Themen