2012-01-26 17 views
0

這是網格視圖訪問在GridView的頁腳文件上傳

<asp:GridView ID="gridViewCourse" 
      runat="server" 
      AutoGenerateColumns="False" 
      onrowcancelingedit="gridViewCourse_RowCancelingEdit" 
      onrowdeleting="gridViewCourse_RowDeleting" onrowediting="gridViewCourse_RowEditing" 
      onrowupdating="gridViewCourse_RowUpdating" 
      onrowcommand="gridViewCourse_RowCommand" 
      datakeynames="CourseId" 

      ShowFooter="True"> 
     ..... 

    <asp:TemplateField HeaderText="Fichier"> 
        <EditItemTemplate> 
         <asp:FileUpload ID="FileUploadFichier" CssClass="upload" runat="server" Text='<%#Eval("Fichier") %>'/> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="lblFichier" runat="server" Text='<%#Eval("Fichier") %>'/> 
        </ItemTemplate> 
        <FooterTemplate> 
         <asp:FileUpload ID="FileUploadFichier" CssClass="upload" runat="server" /> 

        <asp:RequiredFieldValidator ID="rfvFichier" runat="server" ControlToValidate="FileUploadFichier" Text="*" ValidationGroup="validaiton"/> 
        </FooterTemplate> 

     .... 

這是我的方法「onrowcommand =」 gridViewCourse_RowCommand「」我的代碼的一部分

 Protected Sub gridViewCourse_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) 
    If e.CommandName.Equals("AddNew") Then 
     Dim txtId As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrId"), TextBox) 
     Dim txtCours As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrCours"), TextBox) 
     Dim txtPrix As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrPrix"), TextBox) 
     Dim txtTutor As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrTuteur"), TextBox) 
     con.Open() 
     Dim cmd As New SqlCommand(((("insert into Courses(CourseID,CourseName,Price,Tutor) values('" + txtId.Text & "','") + txtCours.Text & "','") + txtPrix.Text & "','") + txtTutor.Text & "')", con) 
     Dim result As Integer = cmd.ExecuteNonQuery() 
     con.Close() 
     If result = 1 Then 
      BindCoursesDetails() 
      lblresult.ForeColor = Color.Green 
      lblresult.Text = " Details inserted successfully" 
     Else 
      lblresult.ForeColor = Color.Red 
      lblresult.Text = " Details not inserted" 


     End If 
    End If 

    Dim upload As FileUpload = DirectCast(gridViewCourse.FindControl("FileUploadFichier"), FileUpload) 

    upload.SaveAs((Server.MapPath(Request.ApplicationPath & "/CoursesFiles/" & Path.GetFileName(FileUpload1.PostedFile.FileName)))) 
End Sub 

的問題是演員上傳(作爲FileUpload)後沒有包含任何內容... 其他都是好的和有效的...

我如何訪問FileUpload1並保存它?

感謝弗蘭克

+0

這是否在UpdatePanel中? – Malk

+0

沒有它的網格視圖頁腳我的控制文件上傳 – FrankSharp

回答

0
  Protected Sub gridViewCourse_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) 
If e.CommandName.Equals("AddNew") Then 
    Dim txtId As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrId"), TextBox) 
    Dim txtCours As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrCours"), TextBox) 
    Dim txtPrix As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrPrix"), TextBox) 
    Dim txtTutor As TextBox = DirectCast(gridViewCourse.FooterRow.FindControl("txtftrTuteur"), TextBox) 

Dim upload As FileUpload = DirectCast(gridViewCourse.FindControl("FileUploadFichier"), FileUpload) 

upload.SaveAs((Server.MapPath(Request.ApplicationPath & "/CoursesFiles/" & Path.GetFileName(FileUpload1.PostedFile.FileName)))) 
    con.Open() 
    Dim cmd As New SqlCommand(((("insert into Courses(CourseID,CourseName,Price,Tutor) values('" + txtId.Text & "','") + txtCours.Text & "','") + txtPrix.Text & "','") + txtTutor.Text & "')", con) 
    Dim result As Integer = cmd.ExecuteNonQuery() 
    con.Close() 
    If result = 1 Then 
     BindCoursesDetails() 
     lblresult.ForeColor = Color.Green 
     lblresult.Text = " Details inserted successfully" 
    Else 
     lblresult.ForeColor = Color.Red 
     lblresult.Text = " Details not inserted" 


    End If 
End If 
替換該行

 Dim upload As FileUpload = DirectCast(gridViewCourse.FindControl("FileUploadFichier"), FileUpload) 

End Sub

我必須在BindCoursesDetails之前投射()

0

您正在使用兩個文件上傳控件使用相同的ID,嘗試不同的ID

,並與這一個

Dim upload As FileUpload = DirectCast(gridViewCourse.FooterRow.FindControl("FileUploadFichier"), FileUpload) 
+0

上傳中沒有任何內容,文件名=「」和長度= 0 – FrankSharp