您是否可以鏈接到其他頁面的選項下拉框中的特定值?鏈接到選項下拉菜單
換句話說,假設我在第1頁上,並且我想鏈接到第2頁,該頁面上有一個帶有3個不同值的選項下拉框。比方說,默認情況下,當您轉到第2頁時,下拉選項框顯示值1.
是否可以鏈接到第2頁並在運行中更改該選項框的值?而當您單擊第1頁上的鏈接時,它將自動顯示值3,而不是1在第2頁上。
您是否可以鏈接到其他頁面的選項下拉框中的特定值?鏈接到選項下拉菜單
換句話說,假設我在第1頁上,並且我想鏈接到第2頁,該頁面上有一個帶有3個不同值的選項下拉框。比方說,默認情況下,當您轉到第2頁時,下拉選項框顯示值1.
是否可以鏈接到第2頁並在運行中更改該選項框的值?而當您單擊第1頁上的鏈接時,它將自動顯示值3,而不是1在第2頁上。
這當然是可以的。你可以在查詢字符串中傳遞一個標誌。因此,在頁面1上,您可以鏈接到page2,如「page2.aspx?option = 3」。然後,在第2頁的PageLoad
方法中,只需從查詢字符串(Request.QueryString["option"]
)中讀取該值,並適當設置DropDownList
的選定項。
一個第1頁你會...
<a href="page2.aspx?option=3">link to page 2</a>
在第2頁的代碼隱藏,基於鋁的例子...
void Page_Load(object sender, EventArgs e) {
if (!Page.IsPostBack) {
int option;
if(int.TryParse(Request.QueryString["option"], out option) { //Only set the value if it is actually an integer
ddlList.SelectedIndex = option;
}
}
}
喬恩·弗裏蘭的回答基本上是我會做的方式。您可能希望將代碼設置爲Page_Load函數內的codebehind類中的列表索引。
您也可以保存在ASP.Net會話中設置的選項的值,但如果您開始讓用戶在網站上跳動,則會變得有點棘手。他們可能會回到第2頁,仍然會將會話變量設置爲意外事件。另外,如果用戶暫時處於非活動狀態或者服務器重置,您可能會遇到會話被刪除的問題。另一方面,如果你把它放在Session對象中,你可以在你的頁面之間來回移動,並保留你需要的所有數據。
如果你想看到一個樣本,你可以試試:
void Page_Load (object sender, EventArgs e) {
if (! Page.IsPostBack) {
ddlList.SelectedIndex = Request.QueryString["option"]
}
你想要把代碼的IsPostBack段內,這樣它將只運行在第一時間將用戶定向到新的一頁! 。
感謝Jon的回答。我在asp.net中有點新鮮感。你能給我一個你剛剛描述的代碼樣本嗎? – arcadian 2009-05-18 04:12:48