2016-05-13 24 views
0

Page_Loadイベントでは、dbのデータをロードしてDropDownListにバインドしました。ポストバック時にDropDownListの値が空です

デシベルからのデータの読み込みを開始する前に、私は、デフォルト値を追加しました:

ループで
ddlDrop.Items.Add(new ListItem("All","All")); 
ddlDrop.SelectedIndex = 0; 

ddldrop.Items.Add(new ListItem()); 

、それが完璧に働いています。

問題は私がSelectedIndexを変更するとポストバックしますが、選択されたDropDownListの値はまだ空です。

ddlDrop.SelectedItem.Value - >選択した値の代わりに空を返します。

+0

更新パネルを使用していますか? –

+0

@AhsanAzizAbbasiいいえ、私は使用していないページロードのドロップダウンバインドを更新していません – theinarasu

+0

ドロップダウンバインディング中にIsPostBackプロパティをチェックしましたか? –

答えて

1

pageloadに次のコードを追加している場合。

ddlDrop.Items.Add(new ListItem("All","All")); 
ddlDrop.SelectedIndex = 0; 

ポストバックが発生するたびに実行されます。したがって、すべてのポストバックで選択インデックス0を設定すると、選択は失われます。ただもし条件

if(!IspostBack)// will prevent from executing on every postback 
    { 
     ddlDrop.Items.Add(new ListItem("All","All")); 
     ddlDrop.SelectedIndex = 0; 

    } 
+0

ヒントありがとうございました – theinarasu

+0

これが動作するかどうかを教えてください –

+0

これがうまくいくと答えてください –

0
here is the sample  


<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <triggers> 
        <asp:AsyncPostBackTrigger ControlID="ddldropdown" /> 
      </triggers> 
     <ContentTemplate> 

    <asp:dropbdown ID="ddldropdown" etc...../> 

     </ContentTemplate> 
    </asp:UpdatePanel> 
+0

仲間ありがとう: – theinarasu

0

でコードを入れて、背中の状態が、この値がfalseに設定されている場合、この問題がenableviewstateプロパティ.. ある原因別の問題になると我々はポストにDBから特定のDropDownListリスト項目を取得できかもしれませんプロパティ値がfalseであるために失われます。

この問題を引き起こす一般的な間違いは、手動でビューの真のときにenableviewstateをバックエンドでfalseに設定する可能性があるため、このプロパティを再確認してください。

0

は、まず、DBからのデータの読み込みを開始するには、あなたのドロップダウン

AppendDataBoundItems="true"を設定し、デフォルト値はあなたはそれがあなたのデフォルトの選択になりますインデックス0の項目が追加されます

ddlDrop.Items.Insert(0, new ListItem("All", "All")); 

に変更する必要があります。必要に応じてSelectedIndexを変更することができ、0ではなくその値を保持します。

関連する問題