2012-04-09 7 views
0

私は、日付を選択するためのカスタムWebコントロールを構築しました。 3つのドロップダウンリストで構成されています。 selectedIndexChangedイベントでは、このような日付をチェックします。プログラムによるポストバックの送信

protected void SelectedIndexChanged(object sender, EventArgs e) 
{ 
    DropDownList ddList = sender as DropDownList; 
    if (ddlDays.SelectedIndex > 0 && ddlMonths.SelectedIndex > 0 && ddlYears.SelectedIndex > 0) 
    { 
     int day = ddlDays.SelectedIndex; 
     int month = ddlMonths.SelectedIndex; 
     int year = int.Parse(ddlMonths.SelectedValue); 
     try 
     { 
      DateTime date = new DateTime(year, month, day); 
     } 
     catch 
     { 

      if (OnDateNotValid != null) 
       OnDateNotValid("Entered date is not valid"); 
      //Here I want to invoke PosBack on the page where I use this control 
     } 
    } 
} 

私は実際にエラーの説明を変更するには警告ラベルのテキストを取得しかし、何のポストバックが形式でありませんようラベルは表示されません。ここではいくつかの配慮があります: 1. itemindexを変更した後に毎回ページをリロードすることは、気を付けているので、ドロップダウンリストのAutoPostBackプロパティをfalseにしました。 2.コントロールにボタンを配置し、そのonbuttonclickイベントを呼び出そうとしましたが、機能しませんでした。

私のコントロールが日付が無効であることが判明した場合は、ページにポストバックを送信する必要があります。

P.S. SelectedIndexChgangedメソッドのbeginnegにブレークポイントを置き、ドロップダウンリストのインデックスを変更すると、デバッガはそのブレークポイントで停止しません。 SelectedIndexChangedイベントのすべてのドロップダウンリストをこのメソッドに割り当てました。

+0

使用下をクリック知る

。 –

+0

http://stackoverflow.com/questions/3591634/how-to-use-dopostback –

+0

更新パネルは引き続き使用されますか?彼らは膨らんでいるので、私はこれらの年前に使用をやめました。遅い、そして私にとって、これらを利用する多くのプロジェクトを見て、Ajaxスタイルのアプリケーションを開発しているように思えます。 – mickyjtwin

答えて

1

uが__doPostback('ButtonRenderedId','');

HTMLでレンダリング javascript:setTimeout('__doPostBack(\'DropDownList1\',\'\')', 0)ウルのAutoPostBack = "真" のjavascript

使用してポストバックすることができます。

は、javascriptを使用してすべてのインデックスが変更された間接的なページポストバックを意味します。

ur autopostbackがfalseの場合は、ポストバックmanullyを行うことができます。もっとこのためにパネルを更新し、lable内側のUpdatePanelを入れHow to use __doPostBack()

関連する問題