アイテムが選択されていないASP.NETDropDownListが必要です。 SelectedIndexを-1に設定しても、これまでのところ役に立ちません。 AJAXでFramework3.5を使用しています。つまり、このDropDownListはUpdatePanel内にあります。これが私がしていることです:
protected void Page_Load (object sender, EventArgs e)
{
this.myDropDownList.SelectedIndex = -1;
this.myDropDownList.ClearSelection();
this.myDropDownList.Items.Add("Item1");
this.myDropDownList.Items.Add("Item2");
}
ドロップダウンに要素を追加すると、そのSelectedIndexが0に変わり、-1に設定できなくなります(アイテムを追加した後でSelectedIndexを呼び出してみました)...何が間違っていますか?アリの助けをいただければ幸いです!
MyDropDownList.Items.Addは、DataSource/DataBind呼び出しを実行した後に呼び出すと、下部に新しいListitem要素を追加するので、代わりにmyDropDownList.Items.Insertメソッドを使用してください。
myDropDownList.DataSource = DataAccess.GetDropDownItems(); // Psuedo Code
myDropDownList.DataTextField = "Value";
myDropDownList.DataValueField = "Id";
myDropDownList.DataBind();
myDropDownList.Items.Insert(0, new ListItem("Please select", ""));
「選択してください」ドロップダウン項目を上部に追加します。
また、前述のように、ドロップダウンでは常に1つのアイテムが選択されます(リストボックスは異なると思います)。明示的に選択されていない場合、デフォルトで一番上のアイテムになります。
クライアント側のスクリプトを使用して、DropDownListのプロパティselectedIndexを-1に設定する(つまり、選択をクリアする)ことができます。
<form id="form1" runat="server">
<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="A"></asp:ListItem>
<asp:ListItem Value="B"></asp:ListItem>
<asp:ListItem Value="C"></asp:ListItem>
</asp:DropDownList>
<button id="СlearButton">Clear</button>
</form>
<script src="jquery-1.2.6.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#СlearButton").click(function()
{
$("#DropDownList1").attr("selectedIndex", -1); // pay attention to property casing
})
$("#ClearButton").click();
})
</script>
私は以下を読んでいます: http://msdn.Microsoft.com/en-us/library/a5kfekd2.aspx
選択したアイテムのインデックス値を取得するには、SelectedIndexプロパティの値を読み取ります。インデックスはゼロベースです。何も選択されていない場合、プロパティの値は-1です。
同時に、 http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.selectedindex(VS.80).aspx に次のように表示されます。
SelectedIndexプロパティを使用して、DropDownListコントロールから選択したアイテムのインデックスをプログラムで指定または決定します。アイテムは常にDropDownListコントロールで選択されます。リスト内のすべてのアイテムから同時に選択をクリアすることはできません。
おそらく-1は、インデックスを設定するためではなく、取得するためだけに有効ですか?もしそうなら、私はあなたの「パッチ」を使用します。
AppendDataBoundItems
をtrue
に設定して、新しいアイテムが追加されるようにします。<asp:DropDownList ID="YourID" DataSourceID="DSID" AppendDataBoundItems="true"> <asp:ListItem Text="All" Value="%"></asp:ListItem> </asp:DropDownList>
ドロップダウンでいくつかの項目を選択する必要があると確信しています。私は通常、空のリストアイテムを追加します
this.myDropDownList.Items.Add( "");
私の最初のリスト項目として、それに応じて進みます。
SelectedIndexは、コントロールが最初に初期化され、コレクション内にアイテムがない場合にのみ-1にすることができます。
WinFormの場合のように、Webドロップダウンリストでアイテムを選択しないことはできません。
This.myDropDownList.Items.Add(new ListItem( "Please select ..."、 ""));を使用するのが最適だと思います。
このようにして、アイテムを選択する必要があることをユーザーに伝えます。SelectedIndex== 0をチェックして検証できます。
以下の構文を試してください。
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue("Select"))
または
DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByText("SelectText"))
または
DropDownList1.Items.FindByText("Select").selected =true
詳細情報: http://vimalpatelsai.blogspot.in/2012/07/dropdownlistselectedindex-1-problem.html