ドロップダウンに空白のアイテムが最初に表示されないのはなぜですか?これが私が持っているものです
drpList.Items.Add(New ListItem("", ""))
With drpList
.DataSource = myController.GetList(userid)
.DataTextField = "Name"
.DataValueField = "ID"
.DataBind()
End With
編集〜Generig Listにバインドしていますが、これが犯人かもしれませんか?
データバインド後:
drpList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
drpList.SelectedIndex = 0;
AppendDataBoundItems=true
を使用して簡単に追加できます:
<asp:DropDownList ID="drpList" AppendDataBoundItems="true" runat="server"><br/>
<asp:ListItem Text="" Value="" /><br/>
</asp:DropDownList>
データバインディングは、空のリストアイテムを追加した後に行われ、既存のものを置き換えます。コントローラーからリストの先頭に空のアイテムを追加するか、データバインディング後に追加する必要があります。
編集:
ASP.Net 2.0の時点でこれをすばやく調べた後、「AppendDataBoundItems」trueプロパティがあり、これを設定してデータバインドされたアイテムを追加できます。
詳細については
より良い方法は、最初に空白のアイテムを挿入してから、あなたがやっているようにデータをバインドすることだと思います。ただし、リストコントロールの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();
}
「泡立て器」のように、トリックは「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;
}
}
ありがとう「泡立て器」
データバインディングを実行してから、次を追加します。
Dim liFirst As New ListItem("", "")
drpList.Items.Insert(0, liFirst)
空白の項目を追加してからデータバインディングを追加すると、リストが空になります。データバインディング後に空白のアイテムを挿入してみてください
シンプルな
やっと
ddlProducer.Items.Insert(0, "");
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)
空白の選択と、コンテンツのある選択との結合を持つこともできます。
select '' value, '' name
union
select value, name from mytable