我的开发环境是VS2008+.net3.5+access+VB,我的任务是:在Gridview(通过AccessDataSource1绑定到access数据库,已显示编辑按钮)中,点击编辑按钮后,在其中的图片栏中选择一张图片,然后在点击更新后完成图片的上传,同时完成图片路径的存储,最后在Gridview中显示这张图片。为此,我的准备工作如下:
1、将gridview中的图片栏定义为模板,编辑模板在其itemtemplate中放置一个image控件,在其edititemtemplate中放置一个FileUpload控件
2、在gridview的GridView1_RowUpdating事件中代码如下:
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
Dim fUpload As New FileUpload
Dim pic_FullName As String
If GridView1.EditIndex < 0 Then Exit Sub
fUpload = GridView1.Rows(e.RowIndex)..FindControl("FileUpload1")
pic_FullName = Server.MapPath("") + "\pic\" + fUpload.FileName
fUpload.PostedFile.SaveAs(pic_FullName) End Sub
现在的问题是,通过单步跟踪调试发现fUpload = GridView1.Rows(e.RowIndex)..FindControl("FileUpload1")这没有正确返回要找的控件,导致程序无法执行下去,请高手解答为什么?应该如何处理?最好用VB解释,谢谢!!!
1、将gridview中的图片栏定义为模板,编辑模板在其itemtemplate中放置一个image控件,在其edititemtemplate中放置一个FileUpload控件
2、在gridview的GridView1_RowUpdating事件中代码如下:
Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating
Dim fUpload As New FileUpload
Dim pic_FullName As String
If GridView1.EditIndex < 0 Then Exit Sub
fUpload = GridView1.Rows(e.RowIndex)..FindControl("FileUpload1")
pic_FullName = Server.MapPath("") + "\pic\" + fUpload.FileName
fUpload.PostedFile.SaveAs(pic_FullName) End Sub
现在的问题是,通过单步跟踪调试发现fUpload = GridView1.Rows(e.RowIndex)..FindControl("FileUpload1")这没有正确返回要找的控件,导致程序无法执行下去,请高手解答为什么?应该如何处理?最好用VB解释,谢谢!!!
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image4" runat="server" />
</ItemTemplate>
</asp:TemplateField>
VB我不会,这个不会异常么?如果不会异常应该能找到才是
(FileUpload) GridView1.Rows(e.RowIndex)..FindControl("FileUpload1")
.NET是这样的
这样写肯定不对,至少在VB里边不对,难道是C#里边的写法?
fUpload.filename为空呐?因为已经选择了要上传的图片了啊,而且在选择框里边已经存放了图片的路径了啊?怎么filename为空呐???红星星快出来啊,5.1快要过不好了啊!!