2013-10-02 143 views
0

这里的代码在这段代码中,我可以更新的文件夹路径,但图像文件名的图像无法在数据库中保存这个原因,我认为我的形象是不显示的GridView plz帮助我我如何在GridView中显示图像?

<EditItemTemplate> 
<asp:FileUpload ID="photoTextBox" runat="server" filename='<%# Bind("photo")%>.jpg' />         
</EditItemTemplate> 

<ItemTemplate>  
<img alt="" src="ImageStorage/<%# Eval("personalid") %>.jpg" width="40" height="40" id="image1" /> 
<asp:Label ID="photoLabel" runat="server" Text='<%# String.Concat(Eval("personalid"),".jpg")%>' ></asp:Label>         
</ItemTemplate> 

C#

protected void RadGrid4_ItemCommand(object sender, GridCommandEventArgs e) 
    { 
     if (e.CommandName == "Update") 
     { 
      GridEditableItem eitem = e.Item as GridEditableItem; 
      FileUpload photoTextBox = eitem.FindControl("photoTextBox") as FileUpload; 
      TextBox personalidTextBox = eitem.FindControl("personalidTextBox") as TextBox; 
      Label photoLabel = eitem.FindControl("photoLabel") as Label; 

      string filename = Path.GetFileName(personalidTextBox.Text + ".jpg");   

      photoTextBox.SaveAs(Server.MapPath("ImageStorage/" + filename)); 
      } 
    } 
+0

您是否尝试过使用访问图像之一“网址/ ImageStorage /{sampleid}.jpg“在浏览器中?如果它显示图像,请检查客户端生成的HTML源,以查看图像src是否正确生成..? – Afshin

回答

0

您的问题与数据绑定有关。由于我们只有几行代码,所以无法找出实际问题。但据我所见,装订不符合标记。假设的ImagePath是数据库列尝试改变ASPX按如下:

ASPX

<EditItemTemplate> 
    <asp:FileUpload 
     ID="photoTextBox" 
     runat="server" />         
</EditItemTemplate> 

<ItemTemplate>  
<img alt="" 
    src='<%#Eval("ImagePath")%>' 
    width="40" 
    height="40" 
    id="image1" /> 

<asp:Label 
    ID="photoLabel" 
    runat="server" 
    Text='<%#String.Concat(Eval("personalid"),".jpg")%>' > 
</asp:Label> 

代码背后:

protected void RadGrid4_ItemCommand(object sender, GridCommandEventArgs e) 
    { 
     if (e.CommandName == "Update") 
     { 
      GridEditableItem eitem = e.Item as GridEditableItem; 
      FileUpload photoTextBox = eitem.FindControl("photoTextBox") as FileUpload; 
      TextBox personalidTextBox = eitem.FindControl("personalidTextBox") as TextBox; 
      Label photoLabel = eitem.FindControl("photoLabel") as Label; 

      string filename = String.Format("{0}.jpg",personalidTextBox.Text);   
      string uploadPath = string.Format("~/ImageStorage/{0}",fileName) 
      photoTextBox.SaveAs(Server.MapPath(uploadPath)); 
      ViewState["UploadPath"]=uploadPath; 
      // use the above viewstate path to save in db in gridview rowupdating event and bind the grid again 
      } 
} 
+0

它告诉我错误无法映射路径'/ImageStorage/395.jpg'。 –

+0

现在IMG已更新,但它不存储在数据库... PLZ帮助 –

0

尝试上传按钮上的代码点击事件。

protected void UploadButton_Click(object sender, EventArgs e) 
    { 
    // Specify the path on the server to 
    // save the uploaded file to. 
    String savePath = @"c:\temp\uploads\"; 

    if (FileUpload1.HasFile) 
    { 
    String fileName = FileUpload1.FileName; 
    savePath += fileName; 
    FileUpload1.SaveAs(savePath); 
    } 
    } 

另外从filename='<%# Bind("photo")%>.jpg'filename='<%# Bind("photo")%>'删除的扩展。当我们上传文件时,其扩展名会自动保存。

0

上传图片使用@Aayushi Jain解释的代码。并将该图像绑定到网格视图,则需要使用ResolveUrl。为此,您需要在gridview中使用ImageField