web-dev-qa-db-ja.com

Asp.net-ドロップダウンリストの上部に空白のアイテムを追加

ドロップダウンに空白のアイテムが最初に表示されないのはなぜですか?これが私が持っているものです

drpList.Items.Add(New ListItem("", ""))

With drpList
    .DataSource = myController.GetList(userid)
    .DataTextField = "Name"
    .DataValueField = "ID"
    .DataBind()
End With

編集〜Generig Listにバインドしていますが、これが犯人かもしれませんか?

125
Saif Khan

データバインド後:

drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;
266
JasonS

AppendDataBoundItems=trueを使用して簡単に追加できます:

<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"><br/>
    <asp:ListItem Text="" Value="" /><br/>
</asp:DropDownList>
28
ayhtut

データバインディングは、空のリストアイテムを追加した後に行われ、既存のものを置き換えます。コントローラーからリストの先頭に空のアイテムを追加するか、データバインディング後に追加する必要があります。

編集:

ASP.Net 2.0の時点でこれをすばやく調べた後、「AppendDataBoundItems」trueプロパティがあり、これを設定してデータバインドされたアイテムを追加できます。

詳細については

http://imar.spaanjaars.com/QuickDocId.aspx?quickdoc=281 または

http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.appenddatabounditems.aspx

24
Whisk

より良い方法は、最初に空白のアイテムを挿入してから、あなたがやっているようにデータをバインドすることだと思います。ただし、リストコントロールのAppendDataBoundItemsプロパティを設定する必要があります。

次の方法を使用して、データソースをリストコントロールにバインドします...

public static void BindList(ListControl list, IEnumerable datasource, string valueName, string textName)
{
    list.Items.Clear();
    list.Items.Add("", "");
    list.AppendDataBoundItems = true;
    list.DataValueField = valueName;
    list.DataTextField = textName;
    list.DataSource = datasource;
    list.DataBind();
}
13
Andy McCluggage

「泡立て器」のように、トリックは「AppendDataBoundItems」プロパティにあります

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        DropDownList1.AppendDataBoundItems = true;
        DropDownList1.Items.Insert(0, new ListItem(String.Empty, String.Empty));
        DropDownList1.SelectedIndex = 0;
    }
}

ありがとう「泡立て器」

6
user492376

データバインディングを実行してから、次を追加します。

Dim liFirst As New ListItem("", "")
drpList.Items.Insert(0, liFirst)
5
Dillie-O

空白の項目を追加してからデータバインディングを追加すると、リストが空になります。データバインディング後に空白のアイテムを挿入してみてください

3
Steven A. Lowe

シンプルな

やっと

ddlProducer.Items.Insert(0, "");
3
Umesh

ddlCategory.DataSource = ds;
ddlCategory.DataTextField = "CatName";
ddlCategory.DataValueField = "CatID";

Cách1:

ddlCategory.Items.Add(new ListItem("--please select--", "-1"));
ddlCategory.AppendDataBoundItems = true;
ddlCategory.SelectedIndex = -1;

ddlCategory.DataBind();

Cách2:

ddlCategory.Items.Insert(0, new ListItem("-- please select --", "0"));

(テスト済みOK)

1
Chưa biết

空白の選択と、コンテンツのある選択との結合を持つこともできます。

select '' value, '' name
union
select value, name from mytable
0
CINCHAPPS