我有一個問題非常類似於this question。我的頁面上有一個下拉菜單,會導致回發,在此期間,ASP:Image
的ImageUrl
屬性發生更改。當回發發生時,FileUpload中的任何值都將被清除。這是我想解決的問題,但我在這個過程中遇到了這個問題。UpdatePanel異步回發沒有更新內容
我試圖通過將下拉和圖像包裝在UpdatePanel
中來解決問題。這裏是我的ASP標記:
<asp:UpdatePanel ID="upPanel" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="myDropdown"
EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<tr valign="top">
<td>Tag:</td>
<td>
<asp:DropDownList ID="myDropdown" runat="server"
AppendDataBoundItems="true" DataTextField="Name"
DataValueField="ID" AutoPostBack="true">
<asp:ListItem Value="" />
</asp:DropDownList>
</td>
</tr>
<TR vAlign="top">
<TD width="150">Thumbnail:</TD>
<TD>
<asp:Image id="imgThumbnail" Runat="server"
AlternateText="No Image Found"
Visible="false"></asp:Image><BR>
</TD>
</TR>
</ContentTemplate>
</asp:UpdatePanel>
編輯:我的代碼,這樣做背後的更新是在這裏:
Private Sub myDropdown_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles myDropdown.SelectedIndexChanged
If (myDropdown.SelectedValue <> "-1") Then
imgThumbnail.ImageUrl = Application("AppPath") + "/Modules/Broadcaster/ImageGen.ashx?tag=" + myDropdown.SelectedValue
Else
imgThumbnail.ImageUrl = Application("AppPath") + "/Modules/Broadcaster/ImageGen.ashx?defaultTag=" + _modID.ToString()
End If
End Sub
我可以看到異步回發在Firebug發生,但圖像的URL不會改變。我究竟做錯了什麼?
我編輯了問題以添加VB代碼隱藏。在添加更新面板之前,這工作正常。它在我添加UpdatePanel之前工作正常;你是否說下拉菜單在異步回發上沒有正確填充?無論哪種方式,我解決了這個問題,通過使用jQuery來更改ddl的change()事件的圖像路徑,所以這個問題更多的是關於好奇心的問題。 – 2011-05-25 22:19:16
正確。在調用page_load函數之前,異步回發似乎不會填充DDL(因爲每次加載頁面時都會調用它,而不管回發的類型如何)。 jQuery始終是一個選項;但是,我通常會盡可能將代碼保留在代碼隱藏中,這就是爲什麼當我遇到這些問題時想出解決方案的原因。 – akuta 2011-05-25 22:37:05