2013-10-02 2 views
0

Здесь в коде В этом коде я могу обновить изображение в пути к папке, но имя файла изображения не может сохранить в базе данных по этой причине, я думаю, что мой образ не показывать 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

вы пробовали доступа к одному из изображений с помощью «URL /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 help –

0

Пробуйте этот код при загрузке кнопки click event.

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. Для этого вам нужно взять ImageField в gridview.

Смежные вопросы