133

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

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

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

編集 ~ Generig List にバインドしていますが、これが原因でしょうか?

4

10 に答える 10

281

データバインド後:

drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;
于 2008-11-05T23:05:45.557 に答える
33

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

<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server">
    <asp:ListItem Text="" Value="" />
</asp:DropDownList>
于 2012-11-28T02:57:16.520 に答える
25

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

編集:

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

于 2008-11-05T23:02:59.197 に答える
13

より良い方法は、最初に空白のアイテムを挿入してから、これまでと同じようにデータをバインドすることだと思います。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();
}
于 2009-03-18T17:36:56.030 に答える
8

「泡立て器」と言ったように、トリックは「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;
    }
}

ありがとうございます

于 2010-10-30T20:14:05.380 に答える
5

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

Dim liFirst As New ListItem("", "")
drpList.Items.Insert(0, liFirst)
于 2008-11-05T23:04:49.180 に答える
3

単純

やっと

ddlProducer.Items.Insert(0, "");
于 2012-05-08T12:50:26.117 に答える
3

空白のアイテムを追加してから、リストを空にするデータバインディングを追加しているようです。データバインド後に空白のアイテムを挿入してみてください

于 2008-11-05T23:01:37.377 に答える