質問

ASP.Net でファイル ブラウザを作成していますが、動的コントロールのイベント配線に関連すると思われる問題が発生しました。ここで私のコードが何をするのかを説明します。

ページが読み込まれるとき (OnLoad)、メソッド (createStuff()) を呼び出します。このメソッドは、現在のディレクトリをリンクボタンに関連付けられたディレクトリに変更するイベントに関連付けられた、多数のリンクボタン (現在のディレクトリ内のフォルダーを表す) を作成します。 。

OnLoad が呼び出された後に linkbutton-click-event が発生するため (したがって、現在のディレクトリは onload 後に最初に変更されます)、リンクボタンは新しい現在のディレクトリを反映するように更新されません (リンクボタンは、現在のディレクトリがクリックによって変更される前に作成されます) -イベント)。したがって、OnLoadComplete で createStuff() も呼び出すと、リンクボタンが更新され、新しい現在のディレクトリ内のフォルダーが反映されます。

ただし、(これは私の問題です)、createStuff()で行うイベントワイヤリング(Click + = new EventHandler(changeDirectory))は、メソッドがOnLoadCompleteで呼び出されるとき(OnLoadCompleteはリンクボタンの後に呼び出されます)実際には機能しないようです。クリックイベントが発生しました)。その結果、リンクボタンの text プロパティには新しいディレクトリ内のフォルダーが反映されますが、リンクボタンをクリックしてもイベントは発生しません。

この問題はどうすれば解決できますか?OnLoadのLinkBut​​tonsにイベントを再配線しようとしましたが、結果は同じでした。

よろしくお願いします

サイモン、デンマーク

役に立ちましたか?

解決

リンクボタンの設定 ID 一貫して財産。

この動作の一般的な原因は 2 つあり、(1) イベント ハンドラーが欠落していることと、(2) ID プロパティが欠落していることです。イベントハンドラーがアタッチされているのは確かなので、 OnLoad その場合、ID プロパティが欠落していることが原因である可能性があります。

ユーザーがクライアント上の LinkBut​​ton をクリックすると、ID で LinkBut​​ton に名前を付けるポストバックがサーバーに送信されます。ポストバック間でコントロールの ID が同じであることを確認していない場合、イベント ハンドラーが発生しない可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top