如何在100%动态AJAX ASP.NET站点中激活javascript

时间:2011-06-14 15:43:10

标签: javascript asp.net ajax ajaxcontroltoolkit webusercontrol

我遇到了问题:

我有100%动态网站,这意味着我在首页上只有一个更新面板。 所有内容都通过后面的代码动态添加到default.aspx,不同的页面是Web用户控件。

当我想打开2个窗口(通过ajax控件工具包可拖动面板)时出现问题。

我想通过javascript定位这些面板,但定位javascript不会运行。

请注意,我仍然在网站的第一页,浏览器中没有回溯历史记录;当我在webbrowser中“查看源代码”时,我看到了登录页面的代码,这是网站打开时首先出现的代码。

我不希望任何回发导致页面历史记录,如何执行javascript来定位我的窗口?

解决了

我通过将定位移到服务器端解决了这个问题,我创建了一个“窗口管理器”,它跟踪站点中所有打开的窗口。然后我通过在我的Web用户控件中将位置添加到Style属性来放置位置,如下所示:

    protected void Page_Init(object sender, EventArgs e)
    {
        PartPanel.Attributes.Add("Style", Position);
    }

    public string Position
    {
        get
        {
            return "position:absolute;left:" + PosX "px;top:" + PosY + "px;";
        }
    }

3 个答案:

答案 0 :(得分:0)

我们可以提供一些示例代码吗?

这种编码风格不会更简单,更适合使用通用处理程序,而不是在页面后面添加代码中的所有内容吗?我相信这也会清除一些开销。

尝试使用Chrome的开发者工具或Firebug for Firefox等扩展程序来查看来源。这样您就可以查看和操作DOM。您还有其他有用的工具,例如JavaScript控制台,它将记录任何错误。

答案 1 :(得分:0)

 public void setPage(mshtml.HTMLWindow2Class JSFile) {
        window = JSFile;
}
public void scriptPrint(){
        window.execScript("report_back('Printing complete!')", "JScript");
}

Page.RegisterStartupScript("myScript", "<script language=JavaScript>hi('" + whatever + "');</script>");

答案 2 :(得分:0)

使用FireFox的FireBug插件可以解决您的“无历史记录”问题,该插件会向您显示实时源代码。

这比浏览器的右键点击&gt;具有很高的优势。查看源代码选项,我相信它会从服务器中检索新代码。