var imgLoader = document.getElementById(“imgLoader”);总是空的

时间:2015-10-11 08:49:19

标签: javascript asp.net

我在ASP.net中创建了一个包含图片的简单Datalist。 当我点击图像时,我想在一个像弹出窗口一样的小窗口中显示它。 我添加了一个Loader图像,以便在所选图像之前显示它。 您可以在下面看到弹出窗口的asp.net代码:

public int print(Graphics g, PageFormat pf, int page)
        throws PrinterException {
    if (page > 0) {
        return NO_SUCH_PAGE;
    }

    Graphics2D g2d = (Graphics2D) g;
    g2d.translate(pf.getImageableX(), pf.getImageableY() - 55);

    getPrintMassFrame().printAll(g);

    return PAGE_EXISTS;
}

在javascript代码中我得到了变量(imgLoader = NULL)。

<div id="divImage" >
<table style="height: 100%; width: 100%">
    <tr>
        <td valign="middle" align="center" colspan = "3" style     ="height:500px;">
            <img id="imgLoader" runat="server" alt=""
             src="~/Images/loader.gif" />
            <img id="imgFull" alt="" src="" 
             style="display: none;
            height: 500px;width: 600px" />
        </td>

你知道为什么我得到一个NULL结果吗?

LoadDiv功能:

var imgLoader = document.getElementById("imgLoader");

1 个答案:

答案 0 :(得分:2)

因为<img>标有runat="server",这意味着id将在内部使用Asp.net来引用此组件,而实际的元素ID(在客户端 - 将会有所不同。

请改为尝试:

var imgLoader = document.getElementById("<%=imgLoader.ClientID%>");

或者,如果您在服务器端对此组件执行任何操作,则可以省略runat="server"