Ho un controllo immagine all'interno del pannello di aggiornamento, nel caricamento della pagina sto impostando il suo URL.nell'aggiornamento fa sì che l'intera pagina venga aggiornata
codice dietro in Page_Load
string url = "example.com";
Image1.ImageUrl = url;
all'interno UpdatePanel in aspx
<asp:Image ID="Image1" runat="server" CssClass="image" />
Ho anche paio di presentare pulsanti all'interno del UpdatePanel, e sto aggiornando alcuni texboxes e le etichette sui clic sui pulsanti.
tuttavia ciò causa l'aggiornamento di tutta la pagina. (la barra di scorrimento si alza.)
se non si sposta l'immagine all'esterno del pannello di aggiornamento. il problema è che il layout non funziona affatto se rimuovo l'immagine all'esterno di updatepanel. qualcuno può aiutarmi con questo? Grazie.
UPDATE
ho realizzato accade questo solo in Chrome. Qualcuno ha un'idea?
UPDATE 2 In questa pagina ho risolto il problema rimuovendo img dall'aggiornamento. È stato un inferno far funzionare il layout, ma ha funzionato.
Tuttavia, ho un'altra pagina, dove sto aggiungendo un nuovo imgs all'aggiornamento quando un utente fa clic su carica di più. Stesso affare, e ovviamente non posso spostare l'immagine fuori dal pannello di aggiornamento questa volta. Ecco il codice.
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<!--Recent Uploads-->
<div class="uploads">
<h2>Uploads</h2>
<asp:UpdatePanel ID="RecentUpload" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="loaduploads"/>
</Triggers>
<ContentTemplate>
<asp:Button CssClass="uploadButton" ID="loaduploads" runat="server" Text="Load More" OnClick="loaduploads_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
codice dietro (indice di upload è una variabile di sessione)
upload_index += 5;
for (int i = 0; i < upload_index; i++)
{
try
{
SSImage img = images[i];
HyperLink imglink = new HyperLink();
imglink.NavigateUrl = "/Image.aspx?id=" + img.id;
imglink.ImageUrl = "/ShowImage.ashx?imgid=" + img.id;
imglink.ToolTip = img.title;
imglink.CssClass = "imgupload";
Control contentpanel = RecentUpload.ContentTemplateContainer;
contentpanel.Controls.AddAt(contentpanel.Controls.Count - 2, imglink);
}
catch (ArgumentOutOfRangeException)
{
loaduploads.Visible = false;
break;
}
}
UPDATE 3
il problema non si verifica con le immagini statiche, piuttosto succede quando sto cercando di caricare da showimage.ashx
. ecco il codice.
<%@ WebHandler Language="C#" Class="ShowImage" %>
using System;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public class ShowImage : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
SqlDataReader rdr = null;
SqlConnection conn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
try
{
string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
conn = new SqlConnection(connStr);
cmd = new SqlCommand("SELECT Image_data FROM [Image_table] WHERE Image_id = " + context.Request.QueryString["imgID"], conn);
conn.Open();
Object result = cmd.ExecuteScalar();
//if nothing found throw exception
if (result == null)
{
throw new Exception();
}
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
context.Response.ContentType = "image/jpg";
context.Response.BinaryWrite((byte[])rdr["Image_data"]);
}
if (rdr != null)
rdr.Close();
}
catch
{
}
finally
{
conn.Close();
conn.Dispose();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Avere y metti 'Trigger' nel tuo pannello di aggiornamento? – zey
@zey sì ho 'asyncpostbacktrigger' – btevfik
Puoi pubblicare il tuo codice? – zey