2012-02-21 5 views
0

私はボタンとパネルを持っています。ユーザーがボタンをクリックすると、ユーザーコントロールがロードされ、panel.Controlsに追加されます。ユーザコントロールが最初にロードされるときにユーザコントロールのグリッドをバインドする必要がありますが(Page_Load)、ユーザがusercontrol内のボタンをクリックしたときにuserControlのポストバックがトリガされます。 Page.IsPostbackを使用することはできません。なぜならユーザーがユーザーコントロールをロードするメインボタンをクリックしたときにtrueを返すからです。私に何ができる?動的に作成されたUserControlでの自己ポストバックの検出

答えて

0

ユーザーコントロールのボタンにCommandNameを与え、CommandNameの値を確認できます。また、オブジェクト送信者のタイプをチェックして、ポストバックの原因となったコントロールを特定することもできます。

動的に作成された後(ページロード前に発生するイベントで)各投稿にユーザーコントロールを再度追加する必要があることを忘れないでください。そのため、ユーザーコントロールを特定するメカニズムを実装する必要があります。ユーザーコントロールがパネルに追加されました。

1

それは原始的だが、あなたはから来た値を比較することによって、ポストバックを発生させた任意のコントロールのためにチェックすることができます。

Request.Form.Get("__EVENTTARGET") 

これは、対象とコントロールのユニークIDを返します。これをチェックしてポストバックを引き起こしたボタンを特定し、それに応じて行動します。

関連する問題