gpt4 book ai didi

javascript - 如何强制 'asp:Image' 加载新的 'imageUrl' ?

转载 作者:行者123 更新时间:2023-12-03 01:15:04 33 4
gpt4 key购买 nike

例如,我有一个代表“盒子”的页面。在这个框中我有多个图像。我在数据 GridView 内的一行上显示每个图像信息。我想要实现的是通过单击任意行在网格下显示图像本身。我尝试做的是下一个:

在后面的代码中,加载网格时,我在 ItemDataBound 事件中添加一个属性,例如:

Private Sub dgrBox_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgrBox.ItemDataBound
If e.Item.DataItem IsNot Nothing Then
Dim oBox As Box
oBox = CType(e.Item.DataItem, Box)

If oBox IsNot Nothing Then
e.Item.Attributes.Add("onclick", "GetImage('" + oBox.ID.ToString() + "','" + oBox.Name + "');")
End If
End If
End Sub

aspx 页面中,我有以下内容:

<div id="divInfo" style="overflow: auto; overflow-x: hidden; width: 100%; height: 330px;">
<table width="98%" cellspacing="0" cellpadding="0">
<tr>
<td>
<table width="100%">
<tr>
<td>
<div id="divZoomSlider" style="overflow: auto;">
<asp:Image ID="imgRectoImg" runat="server" Width="700px" Height="300px" oncontextmenu="ZoomOutImage(this);return false;"
onclick="ZoomInImage(this);"/>
<asp:Image ID="imgVersoImg" runat="server" Width="700px" Height="300px" oncontextmenu="ZoomOutImage(this);return false;"
onclick="ZoomInImage(this);"/>
</div>
</td>
<td align="right" valign="bottom">
<input type="image" onclick="return FlipImage();" src="../Images/recto-verso-impression-icone-8241-32.png" />
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>

另外,在标题中,我有这个javascript代码,我从每一行调用onclick:

function GetImage(sID, sName) {
try {
var oimgRectoImg = document.getElementById("imgRectoImg");
var oimgVersoImg = document.getElementById("imgVersoImg");
oimgRectoImg.imageURL = "~/ImageDisplay.aspx?ID=" + sID + "&Mode=FULLSIZE&IMAGEDISPLAY=RECTO&TYPE=Out";
// alert(oimgRectoImg.imageURL);
oimgVersoImg.imageURL = "~/ImageDisplay.aspx?ID=" + sID + "&Mode=FULLSIZE&IMAGEDISPLAY=VERSO&TYPE=Out";
//alert(oimgVersoImg.imageURL);
} catch (e) {
alert("GetImage: " + e.message);
}
}

我已经通过这些警报确保我的点击事件已被触发。我还访问了警报中显示的 url 以确保一切正常。

我的问题是,当我单击数据网格中的任何给定行时,不会显示任何图像。我觉得我错过了一些东西,比如刷新页面或以某种方式刷新 asp:Image 以从使用 javascript< 分配的新 imageUrl 加载图像 代码。我不知道如何解决这个问题,因为我对前端开发经验很少。

最佳答案

imageURL 仅是服务器端属性。

ASP.NET标签只是被ASP.NET引擎转换为HTML,然后发送到浏览器,而浏览器只能读取HTML。

在呈现的 HTML 中,包含 URL 的属性称为“src”。请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img

因此将 imageURL 更改为 src 如下

 var oimgRectoImg = document.getElementById("imgRectoImg");
var oimgVersoImg = document.getElementById("imgVersoImg");
oimgRectoImg.src = "/ImageDisplay.aspx?ID=" + sID + "&Mode=FULLSIZE&IMAGEDISPLAY=RECTO&TYPE=Out";
oimgVersoImg.src = "/ImageDisplay.aspx?ID=" + sID + "&Mode=FULLSIZE&IMAGEDISPLAY=VERSO&TYPE=Out";

我认为应该可以解决你的问题。

关于javascript - 如何强制 'asp:Image' 加载新的 'imageUrl' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52052457/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com