簡體   English   中英

動態更改按鈕回發網址asp.net

[英]Dyanmic change button postback url asp.net

是否可以動態更改按鈕回發URL屬性? 例如,我有3個頁面,即salesListing.aspxorderlisting.aspxcreateDetail.aspx

salesListingorderlisting允許用戶導航到createDetail頁面。 但是在createDetail.aspx我有一個后退按鈕。

后退按鈕是否有可能檢測出導致回發的頁面? 而且,當用戶單擊“后退”按鈕時,“后退”按鈕將保存記錄並將其返回到上一頁嗎?

例如,用戶單擊訂單清單,然后單擊createDetail頁面。 當他單擊后退按鈕時,后退按鈕將保存用戶ID並將用戶帶回到訂單清單。

您可以使用鏈接按鈕,如果您使用的是母版頁,則根據所在頁面分配相關的導航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";
}

我已經寫了一個項目,該項目可以自動為您管理所有的向后導航, 網址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);

如果您有興趣或需要任何幫助,請告訴我。

一個選擇就是使用javascript history對象。

在您的按鈕上,輸入代碼OnClientClick="javascript: history.go(-1); return false;"

這將轉到上一頁。

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

使用Request.UrlReferrer.ToString(); 並將其存儲在首頁加載中。

if( !IsPostBack )

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

重定向到第二頁后,如果您想返回

獲取ViewState["PreviousPageUrl"]值,然后使用Response.Redirect(ViewState["PreviousPageUrl"].ToString())

使用普通的html按鈕並添加history.back()函數。

<input type =“ button” Value =“ Back” onClick =“ History.back();”>

這將適用於所有瀏覽器,無需服務器端代碼/回發。

快樂編碼!

暫無
暫無

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

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