5

出色地。我面临的问题是我有自己的自定义控件,我进行查询、获取记录并根据数据动态地将 html 控件添加到页面。

现在有添加一些动态javascript的问题

我在文字控件的帮助下做到了这一点。

<asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>

这就像一个魅力

<script language="javascript" type="text/javascript">
// <![CDATA[
    Sys.Application.add_load(WireEvents_<%=this.ID%>); // fix wiring for .NET ajax updatepanel
    $(WireEvents_<%=this.ID%>); // handle page load wiring

    function WireEvents_<%=this.ID%>() {
        <asp:Literal runat="server" ID="latEventToolTipJqueryScripts"></asp:Literal>
    }

// ]]>
</script>

我从后面的代码中动态添加文字文本。

但是,将控件放在更新面板中时,回发不会更新脚本。

编辑:使用Sys.Application.add_load更新面板重新连接必要的功能。问题是需要代替文字的脚本在更新面板中时不会更新。

我已经尝试过 ClientScript.RegisterStartupScript 但它与文字控制技巧具有相同的效果。有什么帮助吗?

---------------------------------------已解决(tnx 到 Pranay Rana)---------------- ------------------

摆脱了 ascx 方面的文字。以及Sys.Application.add_load

现在它只在后面的代码中。让我失望的是 JQuery 的事情。

this.strBuilderJS.Append( "<script language='javascript' type='text/javascript'>" +
                                "$(WireEvents_" + this.ID + ");" + 
                                "function WireEvents_" + this.ID + "(){"+
                                "    alert('stuff');");

this.strBuilderJS.Append(       "}</script>");

接着

ScriptManager.RegisterStartupScript(this, this.GetType(), "strBuilderJS", strBuilderJS.ToString(), false);
4

3 回答 3

4

使用ScriptManager.RegisterStartupScript()注册您的脚本...可以解决问题...

检查此解决您的问题:在异步回发期间使用 RegisterStartupScript 以编程方式添加 JavaScript

于 2011-06-02T06:29:09.363 回答
3

我会推荐一种不同的方法。为任何语言创建动态 javascript。我会创建对动态文件的引用。对于这个例子,我将使用 .NET

  1. 创建一个 test.aspx 页面并添加此脚本:

    <script type="text/javscript" src="js/foo.aspx"></script>

  2. 确保您的页面响应内容类型正确。因此,对于这种情况,我将在您的 foo.aspx 后面的页面加载代码中添加此代码:

    Response.ContentType = "application/javascript";

  3. 在 foo.aspx html 视图中添加您的 javascript 代码。

    alert("<%=DateTime.Now%>");

  4. 浏览您的 test.aspx 页面,您应该会看到带有当前日期的警报

你应该可以从这里继续前进。目标是将 javascript 文件与静态页面分开。

快乐编码。

于 2012-11-28T22:40:50.683 回答
0

如何在锚标记单击时更改 ASP Button 控件的文本

我们在下面有一个 ASP 按钮,当我们点击锚标记时我们想要更改文本

<asp:Button ID="btn_Add" runat="server" CssClass="button2" onclick="btn_Add_Click"/>

我们有以下两个锚标签

<a href = "javascript:void(0)" class="toplink" onclick = "changeText1();">Add New</a>

<a href = "javascript:void(0)" class="toplink" onclick = "changeText2();">Add New</a>

现在我们在脚本标签中添加以下代码

<script type="text/javascript" language="javascript">
    function changeText1() {
        document.getElementById("lbl_header").innerText = 'Add New Teacher';
        document.getElementById("btn_Add").value = 'Add';
    }
    </script>

     <script type="text/javascript" language="javascript">
     function changeText2() {
         document.getElementById("lbl_header").innerText = 'Delete Teacher';
         document.getElementById("btn_Add").value = 'Delete';
     }
    </script>
于 2014-01-04T12:09:39.960 回答