2010-11-28 2 views
0

ユーザーがファイルをWebサーバーにアップロードできるページを作成しています。アップロード後、ページには、すでにアップロードされたファイルへのリンクと、すでにアップロードされている他のファイルが表示されます。ページライフサイクルで、プログラムでプログラムを作成しようとしたときにpage_initの外部にコントロールを表示できない

アップロードされたファイルへのリンクをプログラム的に作成しているので、これをpage_initで行う必要があります。そうしないと、リンクボタンがクリックされてもイベントが発生しません。私のWebページはこれをすべて行います - リンクボタンを作成します。リンクボタンをクリックすると、必要なイベントメソッド、つまりファイルをダウンロードするサブメソッドが呼び出されます。

[OK]をクリックすると、アップロードをクリックすると(ファイルをアップロードする)、以前にアップロードしたすべてのファイルをリンクボタンとして表示するpage_initサブフォルダが呼び出されます。次に、現在のファイルをアップロードするbtnUpload_clickサブフォルダが呼び出されます。

唯一の問題は、現在のファイルが表示されていないことですか?私はpage_initにのみリンクを表示できますが、page_initの後にbtnUploadが呼び出されるため、現在のファイルはpage_initの後にアップロードされないため、表示されません。

これを回避する方法はありますか?

答えて

0
  1. あなたのクラスのメンバーとして、すべてのサーバ側リンクの持っているリスト:List<LinkButton> myLinks = new List<LinkButton>();

  2. あなたがリンクを構築代わりにリストに追加し、まだページに追加しないでください:myLinks.Add(oNewLink);

  3. btnUpload_Clickメソッドでは、グローバルリストへの新しいリンクを適切な値で追加します。

  4. Page_PreRender関数でページにリンクを追加します。これはボタンをクリックした後に発生します。

このロジックを実装する上でさらに助けが必要な場合は、お知らせください。 :)

+0

私はこれを試して、コントロールをリストに追加して、Page_prerenderのページに追加しました。残念ながら同じprobではなく、クリックイベントハンドラを追加していません。クリックすると何も起こりません。 – thegunner

0

セッション変数またはデータベースから以前にアップロードされたファイルのリストを取得または保存する場合は、btnUpload_clickイベントの終了時に、単にページを自分自身にリダイレクトすることができます。 Response.Redirect( "PageName.aspx")と同様です。

関連する問題