将querystring参数添加到Web应用程序方法失败后

时间:2015-09-13 03:17:59

标签: c# asp.net registerstartupscript clientscript

我有以下代码,使用ClientScript.RegisterStartupScript函数在与代码后面不同的框架中打开超链接。超链接是从数据库中检索并分配给标签的。

    public void OpenWindow()
    {
        Formview_CurrentSelectedProcess.DataBind();

        string url = (Formview_CurrentSelectedProcess.FindControl("LabelLink") as Label).Text;
        string s = "window.open('" + url + "', 'main');";
        Test.Text = s;
        ClientScript.RegisterStartupScript(this.GetType(), "script", s, true);
    }

这很完美。然后我在该页面上实现了一个Querystring。正确传递请求参数,并按照我预期的方式在Pageload上打开超链接。但是:下次调用此方法时,将打开的超链接是属于Querystring参数中指定的记录的超链接。我在里面放了一个标签来检查是否将正确的参数's'传递给ClientScript.RegisterStartupScript()并且它是!!!

如果页面已经加载了查询字符串参数(例如,aspx?ID = 324),那么该函数就会出错。加载那个没有该参数的页面是完美的。

会发生什么?为什么ClientScript.RegisterStartupScript返回旧结果,尽管它的输入参数已更改?

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
            PopulateRootLevel();
            string GetID = Request.QueryString["ID"];
            if (String.IsNullOrEmpty(GetID))
            {
            }
            else
            {
                InputNodeToOpen.Text = GetID;
                ButtonClick_transmit(button1, EventArgs.Empty);
                InputNodeToOpen.Text ="";
                IDNodesToBeOpened.Text = "";

            }

    }

有关于此的任何提示吗? 马丁

0 个答案:

没有答案