图像URL在aspx页面中没有变化

时间:2016-05-29 22:35:45

标签: asp.net

我的页面中有以下代码段

<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设置为空字符串。

2 个答案:

答案 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。