1

ページの読み込み時に入力される複数の項目を含むリストボックスがあります。リストボックスの各項目は、最後の項目を除いて問題なく選択できます。その 1 つがクリックされると、選択は自動的に 2 つ上の項目にジャンプします。なぜこれが起こっているのか頭を悩ませているようには見えません。最後のアイテムが選択されたときにのみ発生します。リストボックスは ajax タブ コンテナー内の更新パネルにありますが、それが違いを生む理由がわかりません。明らかな何かを見逃していないことを本当に願っています...

リストボックス:

 <asp:ListBox ID="availableServicesListBox" 
    runat="server" 
    class="formListBox" 
    AutoPostBack="True" 
    onselectedindexchanged="availableServicesListBox_SelectedIndexChanged"> 
 </asp:ListBox>

ページ読み込みイベント:

if (!Page.IsPostBack)         
{
      //populate from database    
}

selectedIndex 変更イベント (自動ポストバック用):

protected void availableServicesListBox_SelectedIndexChanged(object sender, EventArgs e)
{
   if (availableServicesListBox.SelectedValue.Length > 10)
   {
      servicePanel.Visible = true;
      activePanel.Visible = true;                
   }

   else
   {
      servicePanel.Visible = false;
   }
}
4

2 に答える 2

1

値のリストを確認し、重複がないことを確認してください。私が過去に見たのは、リストの後半で値を選択したが、それはリストの前半の項目の重複した値であるということです。したがって、最初に一致したアイテムに選択が適用されるだけです。

于 2013-03-08T15:59:06.930 に答える
0

可能であれば、クライアント側の javascript/Jquery を使用して onChange イベントを listBox に追加し、jquery .Show()、.Hide() メソッドを使用してパネルを表示または非表示にすることをお勧めします。また、はるかに高速です。唯一の問題は、servicePanel.Visible = false; の使用中にパネルが非表示になることです。パネルがページにまったく表示されません。

于 2013-03-08T15:31:13.933 に答える