2011-08-03 17 views
0

私はコードの中でデータソースを指定したaspxページにドロップダウンを持っています。選択した値を設定しようとしていますが、設定したオプションは表示されません。ゴミの説明を残して申し訳ありません。私は使用しているコードで試してみます。HTMLドロップダウンで選択した値を設定する

だからこれは、フロントエンド部分である:

 <select id="OffenceClassificationDropDown" runat="server" style="white-space:pre;" 
       onchange="StoreCrimeChange(internalCrimeReference, 'OffenceClassification', this.value)"> 
     </select> 

そして、これは私がデータを結合して、選択した値を設定しようとする一部の背後にあるコードです:

  this.OffenceClassificationDropDown.DataSource = ManageLookups.GetOffenceClassifications(Session, false); 
      this.OffenceClassificationDropDown.DataTextField = "Description"; 
      this.OffenceClassificationDropDown.DataValueField = "Id"; 
      this.OffenceClassificationDropDown.DataBind(); 

      if (!String.IsNullOrEmpty(this.crime.OffenceClassification.Description)) 
      { 
       this.OffenceClassificationDropDown.Items.FindByValue(this.crime.OffenceClassification.Id.ToString()).Selected = true; 
      } 

変更する理由選択された値への値は、ユーザーが切り替える2つのパネルがあるためです。元のページに戻って、次に選択した値を保持する必要があるこのページに戻ることができます。

うまくいけば、誰かが私の馬鹿を運転しているので、なぜこれが機能していないのかを教えてくれることを願っています。 :)

ありがとうございました!

答えて

0

は、なぜあなたは、ASPを使用していけない:それは、それに組み込まれてSelectedValueのプロパティを持つDropDownListコントロールして、本質的に、それは同じことに出てレンダリングされますあなたがここにある

+0

こんにちは、私はそれを試みましたが、フォームタグ内にある必要があり、ページをレンダリングしないというエラーが表示されます。主な問題は、私がelsesコードを引き継いだことです。 – Rickesh

0

あなたもチェックすることをお勧めします除きあなたのコードは、OKに見えますORNS例外を避けるためにFindByValue()がSelectedプロパティを設定する前にnullを返さないようにしてください。

このイベントが発生し、FindByValueがアイテムを検出し、別のコードがそれを別のものに再度変更しない場合、選択されたオプションは確かに変更する必要があります。

このコードはどのイベントにありますか?パネルの切り替え時にポストバックを開始していますか?あなたはcrime.OffenceClassification.Descriptionにブレークポイントを設定し、crime.OffenceClassification.Descriptionの値は常にあなたがそれを期待するものに設定されていることを保証するために、デバッガでコードをステップ実行しようとする場合があり

することが。また、これは、コードが実際にヒットしていることを確認するのに役立ちます。

+0

FindItemByValueは項目が見つからないとき、およびSelectedプロパティをtrueに設定してnullをチェックしていないので、FindItemByValueが例外をスローしたときにNullを返すため、Alexが正しいです。データを再バインドするか、選択した値を変更するために、以下の項目をチェックします。デバッガはあなたの友人です。 – Icarus

関連する問題