Dyanmic change button postback url asp.net

时间:2012-05-28 09:02:15

标签: c# asp.net postbackurl

是否可以动态更改按钮发布回url属性?例如,我有3页salesListing.aspxorderlisting.aspxcreateDetail.aspx

salesListingorderlisting允许用户导航到createDetail页面。但是在createDetail.aspx我有一个后退按钮。

后退按钮是否可以检测哪些页面导致回发?并且,当用户单击后退按钮时,后退按钮将保存记录并将其恢复到上一页?

例如 用户单击orderlisting然后单击createDetail页面。当他点击后退按钮时,后退按钮保存用户ID并将用户带回订单列表。

5 个答案:

答案 0 :(得分:0)

您可以使用“链接”按钮,如果您使用的是母版页,则根据所在页面分配相关的导航URL。 就像你有一个链接按钮

<asp:HyperLink ID="HyperLink8" NavigateUrl="Login.aspx"
                            runat="server">Login</asp:HyperLink>

在后面的代码中,您可以更改其URL。

if (Session["User"] != null)
{
    HyperLink8.Text = "Logout";
    HyperLink8.NavigateUrl = "Logout.aspx";
}
else
{
    HyperLink8.Text = "Login";
    HyperLink8.NavigateUrl = "Login.aspx";
}

答案 1 :(得分:0)

我已经编写了一个项目,可以自动为您管理所有后退导航,http://navigation.codeplex.com/

您将页面配置为状态列表。每个状态下面是可能转换到不同状态。例如,您的配置将是:

<state key="sales" page="~/salesListing.aspx">
    <transition key="next" to="create"/>
</state>
<state key="order" page="~/orderListing.aspx">
    <transition key="next" to="create"/>
</state>
<state key="create" page="~/createDetail.aspx"/>

然后在代码中,从salesListing转到createDetail,你写:

StateController.Navigate("Next");

要从createDetail返回salesListing,请写下:

StateController.NavigateBack(1);

如果您有兴趣或想要任何帮助,请与我们联系。

答案 2 :(得分:0)

选项只是使用javascript history对象。

在按钮上输入代码OnClientClick="javascript: history.go(-1); return false;"

这将转到上一页。

<asp:Button id="btnClick" runat="Server" text="Back" OnClientClick="javascript: history.go(-1); return false;" />

答案 3 :(得分:0)

使用Request.UrlReferrer.ToString();并将其存储在第一页加载中。

if( !IsPostBack )

{ ViewState["PreviousPageUrl"] = Request.UrlReferrer.ToString(); }

重定向到第2页后,如果要返回

获取ViewState["PreviousPageUrl"]值并使用Response.Redirect(ViewState["PreviousPageUrl"].ToString())

返回

答案 4 :(得分:0)

使用普通的html按钮并添加history.back()函数。

&lt; input type =“button”Value =“Back”onClick =“History.back();”&gt;

这适用于所有浏览器,无需服务器端代码/ Postback。

快乐编码!!!