簡體   English   中英

將querystring參數添加到Web應用程序方法后失敗

[英]after adding querystring parameter to web application method fails

我有以下代碼,使用功能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(),並且它是正確的!

如果該頁面已加載了Querystring參數(例如,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 = "";

            }

    }

有什么暗示嗎? 馬丁

好。 發現錯誤:

將所有動作放在page_load方法中的單獨括號內后,它可以工作。 我以為他們已經被分配到無回郵的情況了。 但是他們不是。 需要括號。 因此它必須是:

protected void Page_Load(object sender, EventArgs e)
{

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

        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM