2010-07-26 118 views
0

我正在使用ASP.NET和我的.aspx頁面我有以下代碼,並根據選擇,我顯示適當的div s。它的運行效果很好,但問題是:如何獲取代碼隱藏的值(無論用戶選擇什麼)?如何在代碼隱藏中獲得選擇的值?

<select id="filterResultsBy" > 
    <option value="">Select...</option> 
    <option value="Date">Date</option> 
    <option value="Subject">Subject</option> 
    <option value="Status">Status</option> 
</select> 

如果我添加runat="server"或使用服務器asp:DropDownList控制,jQuery的不能正常工作。

$('#ddlFilter').change(function(){ 
    var sel = $(this).val(); 
    if(sel === 'DATE'){ 
    hideAll();// a function to hide all the divs first 
    $('#divDateRangeSearch').show(); 
    } else if(sel === 'SUBJECT'){ 
    ///so on... 
    } 
}); 
+0

jQuery的哪部分不工作?第一個選擇器? – XIII 2010-07-26 20:43:29

回答

1

在ASP.NET中,通常的慣例是使用服務器端控件,它可以更好地與Postback模型配合使用。所以,你可以使用相同的:

<asp:DropDownList ID="filterResultsBy" runat="server" CssClass="ddlFilter"> 
    <asp:ListItem Value="" Text="Select..." /> 
    <asp:ListItem Value="Date" Text="Date" /> 
    <asp:ListItem Value="Subject" Text="Subject" /> 
    <asp:ListItem Value="Status" Text="Status" /> 
</asp:DropDownList> 

這將允許您訪問filterResultsBy變量後面的代碼,並檢索當前所選的值。爲了與客戶端腳本庫這項工作如jQuery添加一個類和使用,因爲發生在ASP.NET服務器端控件的名字改編的一類選擇,而不是ID選擇:

$('.ddlFilter').change(function() { 
    var sel = $(this).val(); 
    if(sel === 'DATE') { 
     hideAll(); // a function to hide all the divs first 
     $('#divDateRangeSearch').show(); 
    } else if (sel === 'SUBJECT') { 
     ///so on... 
    } 
}); 
+0

是的,我知道我可以很容易地使用服務器控件,但問題是jquery不工作...我會udpate我的問題後,我張貼這個。 – 2010-07-26 20:21:28

+0

使用類選擇器。 – 2010-07-26 20:21:55

+0

除類選擇器以外的其他選項是設置'ClientIDMode =「Static」',這將使得生成的選擇html與服務器端控件具有相同的id(不會像通常發生的那樣改變ID)。 – saluce 2013-01-07 16:01:18

0

您需要將RunAt="Server"添加到您的選擇標籤。

<select id="filterResultsBy" Runat="Server" > 
    <option value="">Select...</option> 
    <option value="Date">Date</option> 
    <option value="Subject">Subject</option> 
    <option value="Status">Status</option> 
</select> 
+0

是的,我做到了,但問題是jQuery不工作,如果我添加runat服務器 – 2010-07-26 20:20:36

+0

你沒有在你原來的問題中提到jQuery。編輯它以清楚真正的問題是什麼。 – XIII 2010-07-26 20:22:10

+0

更新我的問題,抱歉的混淆。 – 2010-07-26 20:23:44

0

要麼使用DropDownList控件或將runat =「server」屬性添加到選擇標記以將其升級到HtmlSelect control

+0

看到我的問題,我已更新。 – 2010-07-26 20:24:16

0

另一個選擇(如果你正在尋找ajaxify你的頁面)將保持你的選擇,只是使用jquery ajax調用通過web/page方法進行通信。

相關問題