2009-04-23 9 views
3

イメージをその列の一部として表示するグリッドビューがあります。編集モードでは、ユーザーに新しい画像ファイルをアップロードできるようにしたいので、テンプレートの編集部分でFileUploadコントロールを使用しています。FileUploadコントロールを使用したGridview

 protected void GridVew1_RowUpdated(object sender, GridViewUpdateEventArgs e) 
    {   
     if (FileUpload1.HasFile) 
     { 
      FileUpload1.SaveAs(Server.MapPath("images/hardware/" + FileUpload1.FileName)); 
     } 
    } 

私はどのようにこの機能がコード化されている...にもかかわらず、正しくコントロールを呼び出す方法がわからない:

私は、私は信じてこれをキャプチャするイベントがありますか?

答えて

4

最初にRowUpdating の代わりにイベントを処理する必要があります。RowUpdated。次に、その行のFileUploadコントロールへの参照を見つける必要があります。

重要:コントロールが配置されている列の位置を知る必要があります。私の例では、最初の列であると仮定して0に設定します。それ以外の場合は、Cellsコレクションを検索する必要があります。

protected void gridView_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    GridViewRow row = gridView.Rows[e.RowIndex]; 
    FileUpload fileUpload = row.Cells[0].FindControl("fileUpload1") as FileUpload; 
    if (fileUpload != null && fileUpload.HasFile) 
    { 
     fileUpload.SaveAs(Server.MapPath("images/hardware/" + fileUpload.FileName)); 
    } 
} 
+0

ファイルが完璧にアップロードされています。私はCell [0]を参照していますが、これを何に設定してもコントロールが見つかるようです。 – Kolten

+0

'row.FindControl(" fileUpload1 ")'はうまく動作します.. – Sprintstar

1

私はあなたがここで何をしているかを理解していれば、あなたはVBでそう行でこの

Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating 

     Dim aRow As GridViewRow = Me.GridView1.Rows(e.RowIndex) 

    dim xFileUpload as fileupload = CType(aRow.FindControl("FileUpload1"), FileUpload) 

    xFileUpload. save file etc etc etc 

End Sub 

警告のようないくつかのことを

をコントロールを見つける必要があります - これは間違っている場合、私これを行うためのよりよい方法を見たいと思っています!

関連する問題