0

我有一个.aspx网页,UserControl上面添加了一个。在第一次尝试UserControlLinkButtonclicked要这样做。Postback但是当我们click再次这样做时Postback,只有页面重定向不知道为什么?

任何想法?

在 .ASPX 标记中:

 <asp:LinkButton ID="lnkCheckOut" runat="server" 
                        CssClass="button orange" onclick="lnkCheckOut_Click">Checkout</asp:LinkButton>

在.cs 文件中:

protected void lnkCheckOut_Click(object sender, EventArgs e)
    {
        if (Session["UserID"] != null)
        {
            lnkCheckOut.PostBackUrl = "~/checkout.aspx?type=checkout";
            //Response.Redirect("~/checkout.aspx?type=checkout");
            Session["IsQuoteAdded"] = "false";
        }
        //if not logged in user
        else
        {
           lnkCheckOut.PostBackUrl = "~/login.aspx?returnUrl="+HttpUtility.UrlEncode(Request.RawUrl);
        }
    }

当我在第一次单击时在浏览器中看到标记(在 Chrome 中使用 F12)时,它显示:

<a id="ctl00_ContentPlaceHolder1_shpCart_lnkCheckOut" class="button orange" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$shpCart$lnkCheckOut','')">Checkout</a>

第二次点击:

<a id="ctl00_ContentPlaceHolder1_shpCart_lnkCheckOut" class="button orange" href='javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$ContentPlaceHolder1$shpCart$lnkCheckOut", "", false, "", "login.aspx?returnUrl=%2fNew%2fMyBox.aspx", false, true))'>Checkout</a>

注意:我没有在网页或用户控件中使用任何 UpdatePanel。

帮助赞赏!

4

3 回答 3

1

您的代码不会重定向它刚刚分配 URL 的页面。使用下面的代码来纠正它。

protected void lnkCheckOut_Click(object sender, EventArgs e)
{
    if (Session["UserID"] != null)
    {
        //lnkCheckOut.PostBackUrl = "~/checkout.aspx?type=checkout";
       Session["IsQuoteAdded"] = "false";
        Response.Redirect(@"~/checkout.aspx?type=checkout");

    }
    //if not logged in user
    else
    {
       Response.Redirect(@"~/login.aspx?returnUrl="+HttpUtility.UrlEncode(Request.RawUrl));
    }
}
于 2013-10-10T10:54:32.133 回答
0

在您的标记中,没有 PostBackUrl。因此,在第一次单击时,它实际上会回传到同一页面,并且您的事件处理程序将运行。

然后,在您的事件处理程序中,您正在设置 PostBackUrl。

因此,当有人第二次点击该链接时,它将发布到该 URL。您的代码按设计工作:)

编辑:我建议更改为 Response.Redirect,但很难确切知道您的代码应该做什么。

于 2013-10-10T10:24:48.347 回答
0

我面临同样的问题。我在网格视图中有链接按钮。当我单击链接按钮时,它不会在第一次单击时回发,但当我再次单击时它会。然后我正确检查了我的代码,然后我发现网格视图被放置在更新面板中,因此它在第一次点击时不会回发。

所以我建议请检查相同的内容。

于 2019-01-23T08:00:46.710 回答