принудительное обновление страницы из исходного кода внутри события управления загрузкой файла ajax

#asp.net #asp.net-ajax

#asp.net #asp.net-ajax

Вопрос:

Я использую загрузку файла Ajax для вставки некоторых изображений в мою базу данных, а также я использую список данных для отображения этих изображений.

<ajaxToolkit:AjaxFileUpload ID="AjaxFileUpload1" runat="server" Height="141px" Width="640px" MaximumNumberOfFiles="100" OnUploadStart="AjaxFileUpload1_UploadStart" OnUploadComplete="AjaxFileUpload1_UploadComplete" OnUploadCompleteAll="AjaxFileUpload1_UploadCompleteAll" />

и список данных

<asp:DataList ID="dlImages" runat="server" RepeatColumns="3" CellPadding="5">
<ItemTemplate>
<a id="imageLink" href='<%# Eval("ImageName","~/SlideImages/{0}") %>' title='<%#Eval("Description") %>' rel="prettyPhoto[pp_gal]" runat="server" >
<asp:Image ID="Image1" ImageUrl='<%# Bind("ImageName", "~/SlideImages/{0}") %>' runat="server" Width="112" Height="84" />
</a>
</ItemTemplate>
<ItemStyle BorderColor="Brown" BorderStyle="dotted" BorderWidth="3px" HorizontalAlign="Center"
VerticalAlign="Bottom" />
</asp:DataList>

и приведенный ниже код :-

  protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindDataList();
    }
}
protected void BindDataList()
{
    con.Open();
    SqlCommand command = new SqlCommand("SELECT ImageName,Description from SlideShowTable", con);
    SqlDataAdapter da = new SqlDataAdapter(command);
    DataTable dt = new DataTable();
    da.Fill(dt);
    dlImages.DataSource = dt;
    dlImages.DataBind();
    con.Close();
}
 protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
    string fileName = Path.GetFileName(e.FileName);
    string filePath = "~/SlideImages/";
    AjaxFileUpload1.SaveAs(MapPath(filePath   System.IO.Path.GetFileName(e.FileName)));
    con.Open();       
    SqlCommand cmd = new SqlCommand("Insert into SlideShowTable(ImageName,Description) values(@ImageName,@Description)", con);
    cmd.Parameters.AddWithValue("@ImageName", fileName);
    cmd.Parameters.AddWithValue("@Description", "Some Description");
    cmd.ExecuteNonQuery();
    con.Close();        
    BindDataList();
}
 protected void AjaxFileUpload1_UploadCompleteAll(object sender, AjaxControlToolkit.AjaxFileUploadCompleteAllEventArgs e)
{
    Response.Redirect("~/Demo.aspx");
    Server.TransferRequest(Request.Url.AbsolutePath, false);
    Response.Redirect(Request.Url.AbsoluteUri);
}
  

Теперь проблема в том, что при использовании обычного управления загрузкой файла ASP происходит обратная отправка, и страница обновляется автоматически, и мой список данных привязывается, и после загрузки список данных обновляется новыми изображениями. Но при использовании загрузки файла Ajax нет обратной отправки, и обновление не происходит, несмотря на то, что я пробовал разные вещи

 Response.Redirect("~/Demo.aspx");
Server.TransferRequest(Request.Url.AbsolutePath, false);
Response.Redirect(Request.Url.AbsoluteUri);
  

но по-прежнему я не могу обновить страницу, и мне приходится вручную обновлять страницу, чтобы получить обновленный список данных на моей странице. Приветствуется любая помощь или решение. Спасибо.

Комментарии:

1. Зачем использовать ajax, если вы все равно собираетесь обновлять страницу?

2. просто это придало приятный внешний вид… и я пытался что-то новое, но застрял

3. Я спрашиваю только потому, что целью Ajax является асинхронное выполнение задачи, т. Е. без перезагрузки и рендеринга DOM.

4. итак, нет способа сделать это..