簡體   English   中英

下拉列表的上一個item.text

[英]Previous item.text of the Drop Down List

我正在使用MS VS 2010,並在ASP.NET C#網站上工作。 我堅持認為可能很簡單的事情,也許不是。

可以說我有一個下拉列表。

DropDownList ddl = new DropDownList();
ddl.ID = "d355";
dynamicPanel.Controls.Add(ddl);

ListItem lstItem1 = new ListItem();
lstItem1.Text = "1";
ListItem lstItem2 = new ListItem();
lstItem2.Text = "2";

ddl.Items.Add(lstItem1);
ddl.Items.Add(lstItem2);
ddl.SelectedIndexChanged += new EventHandler(this.ddl_SelectedIndexChanged);

由於我們以編程方式創建了下拉列表,因此我們還需要創建與之綁定的自定義事件處理程序。

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
{
    // add the selected index to a counter
    counter +=((DropDownList)sender).SelectedIndex;
    // Now this is where I get stuck, if the current selected index is less
    // than the previous selected index, I want to subtract from the counter



}

這就是我的問題所在。 請閱讀事件處理程序中的注釋。 (對不起,如果我關閉了一些語法,這一切都是免費的)

我有一種感覺,我可以從事件args((DropDownList)e)獲得先前選擇的索引(或無關緊要的項)。

請幫助>。<這似乎不太糟糕!

我不認為有內置機制,但您可以使用ViewStateHiddenField來保留以前的索引。 類似於以下內容:

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        int selectedIndex = ((DropDownList)sender).SelectedIndex;
        if (selectedIndex < (int)ViewState["PreviousIndex"])
        {
            counter -= ((DropDownList)sender).SelectedIndex;
        }
        else
        {
            counter += ((DropDownList)sender).SelectedIndex;
        }
        // update the index
        ViewState["PreviousIndex"] = selectedIndex;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM