簡體   English   中英

在selectedindexchanged事件中設置下拉列表選擇的值?

[英]Set dropdownlist selected value inside selectedindexchanged event?

我在運行時綁定了一個下拉列表,並且其第一項為“ --Select--”。

我有一個特定的要求,如果用戶從下拉列表中選擇了另一個項目,然后在selectedindexchanged事件內部,我要檢查是否不是首先選擇的項目,然后應用邏輯,然后在代碼結尾將其重置為第一項目。

protected void ddlExistingGoals_SelectedIndexChanged(object sender, EventArgs e)
{            
    if (ddlExistingGoals.SelectedValue != "0")
    {
        ---- Perform Logic ----
        ddlExistingGoals.Items.FindByValue("0").Selected = true;
    }
    else
    {
        clearAllControls();
    }
}

當我編寫以上代碼時,它不會在頁面內渲染網格數據,還嘗試了下拉preRender方法,如下所示:

protected void ddlExistingGoals_PreRender(object sender, EventArgs e)
{
    if (ddlExistingGoals.SelectedValue != "0")
    {
        ddlExistingGoals.Items.FindByValue("0").Selected = true;
    }
}

在這兩種情況下,它都不會更改下拉選擇的索引,也不會在頁面上呈現其他控制邏輯數據。 這很特殊,我想知道是否有可能在下拉列表的selectedindexchanged事件中更改所選索引嗎? 提前致謝。

我不確定.SelectedValue和.Selected是否相同。 .selected是僅一項的屬性。 它無法知道其他項目的狀況。 而.SelectedIndex是Dropdown的屬性,而Dropdown可以首先取消選擇先前選擇的項目。

ListItem不知道它屬於哪個列表,因此如何在其他列表中選擇自身?

因為“已選擇”是ListItem的屬性,而不是ddl的屬性。 通過設置..Selected,您不會在所有者列表中選擇項目,就像在設置.SelectedItem的情況下一樣。 而是由您自己設置項目,而所有者必須權衡是否應選擇該項目。

采用

ListItem myitem = ddlChoseModel.Items.FindByValue(ModelID);
ddlChoseModel.SelectedValue = myitem.Value;

暫無
暫無

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

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