2

我在使用以下代码时遇到问题。它在我的本地机器上运行得非常好,但是当我将它部署到开发服务器时它根本不起作用。我在很多地方搜索了解决方案,但没有成功。

我有一个gridview,其中一列是一个按钮字段。此按钮字段打开一个弹出窗口,显示所选销售订单的详细信息。

为了显示弹出窗口,我使用以下句子:

    private void OpenPopup(string name_)
    {
        Page.ClientScript.RegisterStartupScript(typeof(home), "Popup", string.Concat("<script type='text/javascript'>OpenPopup('", name_, "');</script>"));
    }

OpenPopup() 是一个 javascript 函数,它只显示弹出窗口(我已经对其进行了测试,它工作正常,所以我不会显示不必要的代码):

在我的本地环境中执行 RegisterStartupScript 时,它工作正常,页面源中的结果如下:

<script type='text/javascript'>OpenPopup('items');</script>

现在,当我发布站点并将其部署在服务器中时,它根本不起作用。我已经尝试使用Scriptmanager使其工作,但结果相同;它在本地工作,但不在服务器中。

根本没有编写添加的脚本。

我真的很喜欢任何形式的帮助。我已经用很多方法搜索了很多,但对我来说没有解决方案......

非常感谢。

/编辑:我不在页面中使用更新面板。

4

1 回答 1

0

您是否尝试过使用 .RegisterClientScriptBlock?这是我一直用来在代码隐藏中调用 JS 的方法。

你能试试下面的代码吗?

protected void btnSubmit_Click(object sender, EventArgs e)
{
    Boolean dne = false;
    StringBuilder errorMessage = new StringBuilder();
    String scriptName = "";



    if (AdminAccess.DoesUserExist(txtUsername.Text))
    {
        errorMessage.Append("alert('The selected username " + txtUsername.Text + " is already in use.  Please choose another. ');");
        scriptName = "duplicateUsername";
        if (!ClientScript.IsClientScriptBlockRegistered(scriptName))
        {
            ScriptManager.RegisterClientScriptBlock(this, this.GetType(), scriptName, errorMessage.ToString(), true);
        }
        dne = true;
    }

}

于 2012-11-19T18:25:09.863 回答