2014-01-23 35 views
0

我有下拉列表和ASP按鈕在我的網頁是這樣的:獲取HTML從代碼下拉列表中值的背後

<select id="select1" > 
    <option value="smiley.gif">Smiley</option> 
    <option value="angry.gif">Angry</option> 
    <option value="stickman.gif">Stickman</option> 
</select> 
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /> 

一旦按鈕被點擊,我需要從下拉列表中選擇值下降列出並保存在會話中。 但是當列表發生變化時,它不應該重新加載頁面(我不需要使用runat="server")。 如何做到這一點?

回答

2

您從Request對象中獲取值。

編輯,感謝@彼得評論通過,名稱屬性添加到選擇元素:

<select id="select1" name="select1"> 
    <option value="smiley.gif">Smiley</option> 
    <option value="angry.gif">Angry</option> 
    <option value="stickman.gif">Stickman</option> 
</select> 

在後臺代碼:

var selectedOption = Request["select1"]; 

不過,如果你正在使用asp.net我建議您使用select的服務器版本(runat = server),從而可以直接從代碼隱藏的Select對象訪問值。

爲避免回發,您可以設置AutoPostback = false,在下拉列表中選擇一個值時,以下解決方案將不會回發。

<asp:DropDownList id="select1" runat="server" AutoPostback="False"> 
    <asp:ListItem Value="smiley.gif" Text="Smiley"/> 
    <asp:ListItem Value="angry.gif" Text="Angry"/> 
    <asp:ListItem Value="stickman.gif" Text="Stickman"/> 
</asp:DropDownList> 
    <asp:Button ID="btnSubmit" runat="server" Text="Submit" onclick="btnSubmit_Click" /> 

在後臺代碼:,您可以使用一個asp.net控制你的下拉式獲得安全等方面的獎金

var selectedOption = select1.SelectedValue; 
+0

這不起作用'[的NullReferenceException:未將對象引用設置到對象的實例。]'。我明確提到,我不需要在更改選擇後重新加載頁面。 –

+2

還將name屬性設置爲select1。 –

+0

謝謝佩特。這是神奇的 –

0

您需要設置HTML控件的名稱,然後你可以從請求對象中獲取它。

<select id="select1" name="myselect" > 
    <option value="smiley.gif">Smiley</option> 
    <option value="angry.gif">Angry</option> 
    <option value="stickman.gif">Stickman</option> 
</select> 

裏面你按一下按鈕事件處理程序:

string selection = Request["myselect"];