0

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

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

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

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

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

前もって感謝します

サイモン、デンマーク

4

1 に答える 1

3

LinkBut​​ton のIDプロパティを一貫して設定します。

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

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

于 2009-03-04T21:26:44.670 に答える