【问题标题】:How can my user control get information from my aspx page我的用户控件如何从我的 aspx 页面获取信息
【发布时间】:2017-03-03 19:22:34
【问题描述】:

我有一个用户控件,在用户控件内部,代码试图设置一个弹出窗口并设置标签值

document.getElementById("ReportTitle").innerText = TitleText;

id“ReportTitle”在aspx页面中定义为

<a id="ReportTitle" style="font-family:Verdana; font-weight.bold; font-size:9px; cursor:pointer">Ocean Cargo</a>

它还尝试以相同的方式设置 URL 和可见性属性。我收到错误“无法设置未定义或空引用的属性'innerText'。”我的第一个想法是它试图在第一个窗口完成加载之前设置值,我尝试在包含对 getElementById 的调用的函数上使用 window.open 但它不起作用。我正在尝试确定是否这就是问题所在,或者它无法获取“ReportTitle”,因为它位于 aspx 页面上。

谢谢。

【问题讨论】:

    标签: javascript asp.net ascx


    【解决方案1】:

    您可以使用 jQuery 轻松做到这一点。

    <a id="ReportTitle">Ocean Cargo</a>
    
    <script type="text/javascript">
        var link = $("#ReportTitle");
        link.text("New Text");
        link.attr("href", "http://www.google.nl");
        //link.attr("style", "display:none");
    </script>
    

    【讨论】:

    • 对不起,我才开始研究 jQuery,所以我还有一些问题。 1)
    • 这取决于您的需要,但通常脚本保存在一个单独的文件中,例如 myScripts.js 就像您对 jquery.min.js 所做的那样放在页面的 &lt;head&gt; 中,在 jQuery 参考下方。
    • 我可以弄清楚如何让它与上面的 jQuery 一起工作。我终于用'window.onload = InitSearch;'得到了一些工作现在将出现弹出窗口并显示信息,但出现在背景中的地图将不再显示,并且其他一些搜索将不再起作用。我相信aspx页面中中的onload被.ascx页面中的window.onload覆盖
    【解决方案2】:

    我终于让它工作了。我不得不改变

    window.onload

    document.onreadystatechange = function () {
        if (document.readyState == "complete") {
            InitSearch();
        }
    }
    

    【讨论】:

    • 我想知道是否有人可以告诉我为什么我的答案被否决了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多