2011-11-15 11 views
1

私は現在非常に奇妙な問題に遭遇しています。私はいくつかのファイルをアップロードするasp.netウィザードを使用しています。ファイルはpluploadを使用してアップロードされます。ファイルがアップロードされた後、私はセッション変数に格納されたアップロードファイルのリストを持っています。セッション変数を使用して、アップロードファイルを示す表を作成します。ユーザは、テーブルのドロップダウンを使用してファイルカテゴリを設定するオプションを持つようになりました。ユーザが「終了」ボタンをクリックすると、コードはテーブルのファイルとカテゴリのリストを読み込みます。奇妙なことに、このコードは開発マシンといくつかのサーバーで正常に動作しますが、特定のクライアントサーバーではドロップダウン値は常にnullとして返されます。関連するコードは次のとおりです。リピーターのasp.netドロップダウンで選択された値が返されない

protected void Page_Init(object sender, EventArgs e) 
    { 
      bindRepeater();   
    } 

private void bindRepeater() 
    { 
     ArrayList sessionFiles = (ArrayList)Session["PLUploadFiles"]; 

     IList<document> files = new List<document>(); 

     foreach (string fileName in sessionFiles) 
     { 
      document doc = new document(); 

      doc.FileName = fileName; 
      doc.Description = fileName.Split('.').First(); 

      files.Add(doc); 
     } 

     TableRepeater.DataSource = files; 
     TableRepeater.DataBind(); 
    } 

protected void SaveButton_Click(object sender, EventArgs e) 
    { 

     foreach (RepeaterItem item in TableRepeater.Items) 
     { 
      Label descriptionLabel = (Label) item.FindControl("DescriptionLabel"); 
      String description = descriptionLabel.Text; 

      Label fileNameLabel = (Label)item.FindControl("FileNameLabel"); 
      String fileName = fileNameLabel.Text; 

      DropDownList categoryDropDown = (DropDownList) item.FindControl("CategoryDropDownList"); 
      string category = categoryDropDown.SelectedValue; 

      if(SaveClicked != null) 
      { 
       SaveEventArgs s = new SaveEventArgs(); 
       s.FileName = fileName; 
       s.Category = category; 
       s.Description = description; 

       SaveClicked(this, s); 
      } 

     } 

     Response.Redirect(RedirectURL); 
    } 

ウィザード全体がユーザーコントロール上に存在することに注意してください。誰もがこのコードが大部分のマシンでうまく動作するが、ある特定のサーバでうまくいかない理由を知っていますか?

答えて

0

私はそれを修正したように見えます。何らかの理由で私はダブルポストバックを見ていました。これは間違った時刻にPage_Loadのセッション変数をリセットするコードを呼び出していました。回避策は、アップロードページにリンクするページのセッション変数をリセットして、ページがロードされる前にリセットされるようにすることです。なぜ私はダブルポストバックを見ているのか分かりません。

+0

「終了」ボタンはリンクボタンですか? 「終了」ボタンのレンダリングされたHTMLはどのように見えますか? –

関連する問題