ASP.net gridview не может обновить изображение - PullRequest
0 голосов
/ 11 июня 2018

Так что я новичок в asp.net.У меня есть проект колледжа, который должен использовать функцию обновления.Я сделал функцию обновления, она отлично работает для всех столбцов, кроме столбца изображения.Это не обновление базы данных изображений, и показать предыдущее изображение в виде сетки.Картинки в папке уже обновлены, но в виде сетки отображается только предыдущая картинка (а не обновленная).Мне нужна ваша помощь, пожалуйста, спасибо:)

это aspx-код gridview, если нажать кнопку обновления, он будет перенаправлен на другую страницу.

<div>
    <asp:Label ID="Label1" runat="server" Text=""></asp:Label>
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="Images" ItemStyle-Height="50px" ItemStyle-Width="50px" >
                <ItemTemplate>
                    <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("pic") %>'/>/>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:BoundField DataField="nama" HeaderText="nama" />
            <asp:BoundField DataField="harga" HeaderText="harga" />
            <asp:BoundField DataField="stok" HeaderText="stok" />
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update" wID='<%# Eval("Id") %>'/>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
</div>

это функция Page_Load

    public List<Table> getAll()
    {
        List<Table> watches = (from x in de.Tables select x).ToList();
        return watches;
    }
    public void loadData()
    {
        GridView1.DataSource = repo.getAll();
        GridView1.DataBind();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack) loadData();
    }

и перенаправлен на обновление aspx

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <br />
    <asp:FileUpload ID="pic" runat="server" />
    <br />
    <asp:TextBox ID="name" runat="server"></asp:TextBox>
    <br />
    <asp:TextBox ID="price" runat="server"></asp:TextBox>
    <br />
    <asp:TextBox ID="stok" runat="server"></asp:TextBox>
    <br />
    <asp:Button ID="btnUpdate" runat="server" Text="Button" OnClick="btnUpdate_Click" />

Это функция обновления btnUpdate в обновлении aspx

    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        string ext = System.IO.Path.GetExtension(pic.FileName);
        string nama = name.Text;
        int harga = Int32.Parse(price.Text);
        int stock = Int32.Parse(stok.Text);
        Table update = (Table)Session["updateWatch"];
        string pict = "..\\Pictures\\Watch Pictures\\" + update.Id + ext;
        bool updateStatus = repo.update(update.Id, pict, nama, harga, stock);
        if (updateStatus == false) Label1.Text = "fail";
        else
        {
            string subPic = update.pic.Substring(3);
            string path = Server.MapPath("~") + subPic;
            string savepath = Server.MapPath("~/Pictures/Watch Pictures/");
            System.IO.File.Delete(path);
            pic.SaveAs(savepath + update.Id + ext);
            Response.Redirect("WebForm1.aspx");
        }
    }

Это функция обновления в хранилище

    public bool update(int id, string pic, string nama, int harga, int stok)
    {
        Table updateW = (from x in de.Tables where x.Id == id select x).FirstOrDefault();
        updateW.pic = pic;
        updateW.nama = nama;
        updateW.harga = harga;
        updateW.stok = stok;
        de.SaveChanges();
        if (updateW == null) return false;
        return true;
    }

это код для источника данных gridview

    public List<Table> getAll()
    {
        List<Table> watches = (from x in de.Tables select x).ToList();
        return watches;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...