2014-03-27 102 views
0

我有一個下拉列表如下圖所示:下拉列表刷新頁面時保持選定值不變

<asp:DropDownList ID="DropDownList1" cssclass="ddStyle" runat="server" DataSourceID="SqlDataSource2" DataTextField="company" DataValueField="SECid" Width="100%" AppendDataBoundItems="true" AutoPostBack="True" EnableViewState="true" ViewStateMode="Enabled"> 
    <asp:ListItem Text="--Select One--" Value="" /> 
</asp:DropDownList> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="DropDownList1"></asp:RequiredFieldValidator> 
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="select distinct secid, company from .... order by company"></asp:SqlDataSource> 

VB的背後是

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 

    Dim Selection As String = Nothing 


    If Not DropDownList.SelectedValue Is Nothing Then Selection = DropDownList.SelectedValue 
    Session("Selected") = Selection 



End Sub 

我要實現的是,當我刷新頁面後,我對dropdwonlist做出選擇時,下拉列表將不會返回到「 - select one--」,而是保留其最後選定的項目。我想知道它有什麼解決方案?

感謝您的諮詢!

+0

你能告訴我你的代碼 - 背後?你在Page_Load中有什麼? –

+0

嗨,後面的VB代碼是一個按鈕點擊(如上所述)。我目前沒有任何page_load子。 – user3344443

+0

等一下,也許我想不明白:你不想讓DropDownList在任何refreash後改變選定的項目?所以當頁面刷新時,你希望DropDownList保留其最後選擇的項目? –

回答

3

這裏是LakshmiNarayana換貨的例子:

ASPX:

<asp:DropDownList ID="DropDownList1" runat="server"> 
    <asp:ListItem Text="-- Select One --"></asp:ListItem> 
    <asp:ListItem Text="Apple"></asp:ListItem> 
    <asp:ListItem Text="Orange"></asp:ListItem> 
</asp:DropDownList> 

<asp:Button ID="Button1" runat="server" Text="Submit" OnClick="Button1_Click" /> 

VB代碼隱藏:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    If Not IsPostBack Then 
     If Not Session("Selected") Is Nothing Then 
      DropDownList1.SelectedValue = Session("Selected").ToString 
     End If 
    End If 
End Sub 

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click 
    Dim Selection As String = Nothing 

    If Not DropDownList1.SelectedValue Is Nothing Then 
     Selection = DropDownList1.SelectedValue 
     Session("Selected") = Selection 
    End If  
End Sub 
+0

感謝您的明確解釋!我現在明白了! – user3344443

+0

非常歡迎您! –

+0

我最近意識到,當我做層疊下拉列表(不使用AJAX)時,VB代碼會在刷新頁面時返回錯誤(因爲下拉列表總是返回到第一項)。我想知道是否有辦法解決這個問題? – user3344443

1

一種方法可能是檢查Session("Selected")值是否包含值,並將其綁定到page_load中的列表框中的!isPostback塊中。

檢出此forum爲實現此目的的其他方法。

+0

嗨,是它像保護小組Page_reload(BYVAL發件人爲對象,BYVALË作爲System.EventArgs)把手Me.Load 如果DropDownList.SelectedValue =「」然後 DropDownList.DataBind() 結束如果結束 小組我試圖但仍然不起作用? – user3344443

+0

感謝您的諮詢!我知道了! – user3344443

+0

很高興幫助!你非常歡迎:) – LakshmiNarayanan

相關問題