2011-01-24 8 views
0

私はページロード中にバインドするドロップダウンリスト(System.Web.UI.WebControls.DropDownList)を持っています。選択されたインデックスpageloadでデータバインド中にDropDownListのイベントが発生しませんでした

ページが初期値に対応する値がロードされるように、私は(Winformsの中にコンボボックスの場合に発生する使用)コンボボックスにドロップダウンをバインドするとき、私はSelectedIndexをイベントが発生し得ることを期待
try 
    { 
     if (!Page.IsPostBack) 
      { 
       DataTable dt = new StaticNoticeController().GetStaticNoticeNames(); 
       this.HeadingsDropDownList.AutoPostBack = true; 
       this.HeadingsDropDownList.DataSource = new StaticNoticeController().GetStaticNoticeNames(); 
       this.HeadingsDropDownList.DataTextField = "NoticeName"; 
       this.HeadingsDropDownList.DataValueField = "NoticeId";     
       this.HeadingsDropDownList.DataBind();          

      } 
    } 
catch (SystemException ex) 
    { 
       //ToDo: Log the Exception 
    } 

ドロップダウンリスト。

私も

this.HeadingsDropDownList.selectedIndex =を試み-1。データバインド後のページロードで
しかし無駄に。

ブラウザからドロップダウンリストのインデックスを変更すると、通常通りイベントが発生します。 何か不足していますか、できないことをやろうとしていますか?

助けてください。 ありがとうございました

答えて

1

本質的には、サイトを読み込むと直接ポストバックすることになります。それはループで立ち往生してしまうでしょう。

もしinited値であれば、ポストバックはinitで行われるべきです。

+0

ありがとうございます。あなたが提案するソリューションのようなものはうまくいくでしょう。しかし、ページ初期化はページが読み込まれる前でも実行されます。ですから、Page_LoadCompleteにコードを書くと、私が直面する問題は修正されます。 – Ananth

+0

確かに。初期化では、asp.netのinitは意味しませんでしたが、独自の初期化ルーチンが優先的に呼び出されます。 – stefan

1

なぜSelectedIndexChanged-Eventを発生させますか?すでに説明したように、ユーザーがクライアント側で手動で変更すると、選択されたインデックスが変更されます。これが望ましい動作です。最初に、選択されたインデックスが変更されたときに呼び出される関数をサーバサイドで呼び出す場合は、手動で呼び出すようにしてください。

+0

ありがとうございました。ドロップダウンには一連の値があります。ドロップダウンの値に基づいて、グリッドが表示されます(これはSelectedIndex Changedイベントで発生します)。 SelectedIndex Changedイベントが発生しなかった場合、ページはドロップダウンに値が表示されますが、グリッドは空になります。ドロップダウンの初期値に基づいて塗りつぶすグリッドが必要です。 – Ananth