web-dev-qa-db-ja.com

プログラムで値でドロップダウンリスト項目を選択する方法

C#.NETでプログラムによって値でドロップダウンリスト項目を選択する方法は?

43
David Bonnici

ドロップダウンリストに選択する値が含まれていることがわかっている場合は、次を使用します。

ddl.SelectedValue = "2";

値が存在するかどうかわからない場合は、次を使用します(またはnull参照例外が発生します)。

ListItem selectedListItem = ddl.Items.FindByValue("2");

if (selectedListItem != null)
{
    selectedListItem.Selected = true;
}
80
ScottE

以下を試してください:

myDropDown.SelectedIndex = 
myDropDown.Items.IndexOf(myDropDown.Items.FindByValue("myValue"))
24
womp
ddl.SetSelectedValue("2");

便利な拡張機能付き:

public static class WebExtensions
{

    /// <summary>
    /// Selects the item in the list control that contains the specified value, if it exists.
    /// </summary>
    /// <param name="dropDownList"></param>
    /// <param name="selectedValue">The value of the item in the list control to select</param>
    /// <returns>Returns true if the value exists in the list control, false otherwise</returns>
    public static Boolean SetSelectedValue(this DropDownList dropDownList, String selectedValue)
    {
        ListItem selectedListItem = dropDownList.Items.FindByValue(selectedValue);

        if (selectedListItem != null)
        {
            selectedListItem.Selected = true;
            return true;
        }
        else
            return false;
    }
}

:コードはすべてパブリックドメインにリリースされます。帰属は必要ありません。

6
Ian Boyd

これは、文字列valに基づいてドロップダウンリストからオプションを選択する簡単な方法です

private void SetDDLs(DropDownList d,string val)
    {
        ListItem li;
        for (int i = 0; i < d.Items.Count; i++)
        {
            li = d.Items[i];
            if (li.Value == val)
            {
                d.SelectedIndex = i;
                break;
            }
        }
    }
2
Prado

Ian Boyd(上記)には素晴らしい答えがありました-これをIan Boydのクラス「WebExtensions」に追加して、テキストに基づいてドロップダウンリストの項目を選択します。

/// <summary>
/// Selects the item in the list control that contains the specified text, if it exists.
/// </summary>
/// <param name="dropDownList"></param>
/// <param name="selectedText">The text of the item in the list control to select</param>
/// <returns>Returns true if the value exists in the list control, false otherwise</returns>
public static Boolean SetSelectedText(this DropDownList dropDownList, String selectedText)
{
    ListItem selectedListItem = dropDownList.Items.FindByText(selectedText);
    if (selectedListItem != null)
    {
        selectedListItem.Selected = true;
        return true;
    }
    else
        return false;
}

それを呼び出すには:

WebExtensions.SetSelectedText(MyDropDownList, "MyValue");
1
Dan B
combobox1.SelectedValue = x;

他の何かを聞きたいと思うかもしれませんが、これはあなたが求めたものです。

1
Henk Holterman

私は好む

if(ddl.Items.FindByValue(string) != null)
{
    ddl.Items.FindByValue(string).Selected = true;
}

DdlをドロップダウンリストIDに、stringを文字列変数の名前または値に置き換えます。

0
San

検索でここに来る人のために(このスレッドは3歳以上だから):

string entry // replace with search value

if (comboBox.Items.Contains(entry))
   comboBox.SelectedIndex = comboBox.Items.IndexOf(entry);
else
   comboBox.SelectedIndex = 0;
0
NoCake

ddlPageSize.Items.FindByValue( "25")。Selected = true;

0
Ankursonikajen