2016-03-31 5 views
1

in meinem ASP-Code erstelle ich ein Dropdown mitASP.net C# lesen LiteralControl <select><Option> von Code hinter

C#:

DivPlant.Controls.Add(new LiteralControl("<select id='" + SelectID + "' multiple='multiple'>"+Options+"</select>")); 

ASPX:

<div id="DivPlant" runat="server" multiple="multiple" style="float:left"> 

Wie bekomme ich die ausgewählte Werte aus dem Code dahinter?

+0

Sie unbedingt tun müssen das schaffen Kontrolle im Code? Sie können es nicht im Markup hinzufügen? In jedem Fall könnten Sie eine 'ListBox' mit' SelectionMode = "Multiple" hinzufügen, anstatt ein 'select' Element in ein' Literal' Steuerelement einzufügen. Das Abrufen der Werte in Code-Behind ist jedoch einfacher, wenn das Steuerelement jedoch im Markup vorhanden ist. – ConnorsFan

+0

Danke für die Antwort. Aber meine Anforderung besteht darin, Dropdown-Listen mit mehreren Auswahlmöglichkeiten zu haben. –

+0

Gemäß meinen Tests (unter Windows, in IE, FF und Chrome) werden sowohl das select-Element mit 'multiple' als auch die ListBox gleich (als listboxes) angezeigt. Ich weiß nicht, ob Sie wirklich eine Dropdown-Liste mit Mehrfachauswahl haben können. – ConnorsFan

Antwort

1

Sie können den ausgewählten Wert Zugriff mit Request.Form []

In Sie aspx Seite:

<form id="form1" runat="server"> 

<div id="DivPlant" runat="server" style="float:left"> 
<asp:Label runat="server" id="lblSelection"></asp:Label> 
<asp:Button id="btnSubmit" runat="server" onclick="btnSubmit_Click"/>  
</div> 
</form> 

In Ihrem Code hinter:

protected void Page_Load(object sender, EventArgs e) 
    { 
     string SelectID = "ddlTest"; 
     string Options = "<option value='volvo'>Volvo</option>"; 
     DivPlant.Controls.Add(new LiteralControl("<select name='ddlName' id='" + SelectID + "'>" + Options + "</select>")); 

    } 

    protected void btnSubmit_Click(object sender, EventArgs e) 
    { 
     lblSelection.Text = Request.Form["ddlName"]; 

    } 
Verwandte Themen