2012-01-26 2 views
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) 
     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 

문제는 캐스트 인 그리드 뷰

<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 ""에 대한 코드의 내 일부이다 업로드 할 때 (FileUpload로서) 아무 것도 포함하지 않습니다 ... 다른 사람들은 훌륭하고 효과적입니다 ...

어떻게 FileUpload1에 액세스하여 저장합니까?

감사 프랭크

당신은 동일한 ID로 두 개의 파일 업로드 컨트롤을 사용하고
+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를

을 시도하고이 하나

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

파일 이름 = ""및 길이 = 0 – FrankSharp