我的页面中有以下代码段
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="testButton" />
</Triggers>
<ContentTemplate>
<asp:Image ID="testImage" runat="server" ImageUrl="~/triangle.png" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:Button runat="server" ID="testButton" Text="Change Image" OnClick="testButton_Click" />
并且在我的代码中有以下内容
protected void testButton_Click ( object sender , EventArgs e ) {
testImage.ImageUrl = "";
}
当我点击按钮时,图像消失了,因为它的URL已被设置为后面的代码中的空字符串 - 我明白了。但是当我查看页面源时,我看到原始图像URL在asp页面中初始化,我非常需要将URL设置为空字符串。
答案 0 :(得分:1)
这是因为浏览器没有重新加载所有页面源,但是如果在ScriptManager中更改参数,则在IDE中(不是运行时)。如果设置为false EnablePartialRendering = false;这可以解决您的问题,并始终有新的HTML代码。
答案 1 :(得分:1)
我已在您的标记中更改了asp图像的ImageUrl值,如下所示:
<asp:UpdatePanel runat="server" ID="UpdatePanel1">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="testButton" />
</Triggers>
<ContentTemplate>
<asp:Image ID="testImage" runat="server" ImageUrl="<%#changeableImageUrl %>" />
</ContentTemplate>
代码背后:
public string changeableImageUrl;
protected void Page_Load ( object sender , EventArgs e ) {
changeableImageUrl= "~/triangle.png"; // initial image URL
this.DataBind (); // since data have been bound in the page by data binding syntax
// <%#changeableImageUrl %>
}
protected void testButton_Click ( object sender , EventArgs e ) {
changeableImageUrl= ""; // to set html-rendered src attribute of img element to ""
this.DataBind(); //bind data to the page
}
必须在页面中将changeableImageUrl声明为public。现在,您可以更改changeableImageUrl以更改图像URL。