[英]How to retain values in my listbox between postbacks ASP.NET
我對asp.net相當陌生,對您的幫助將不勝感激。 該程序非常簡單,我有兩個網頁,一個包含一個列表框,另一個包含一個文本框。 該程序僅用於將項目從另一個頁面添加到列表框中。 我在WebForm1上的代碼,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace TestAppState
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
string field1 = (string)(Session["id"]);
ListBox1.Items.Add(field1);
}
else
{
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
Response.Redirect("WebForm2.aspx");
}
}
}
WebForm2上的代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Caching;
namespace TestAppState
{
public partial class WebForm2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
Application["id"] = txtID.Text;
Response.Redirect("WebForm1.aspx");
}
}
}
你快到了。 在btn_AddClick事件中,您需要找到所有已選擇的ListBox項並將其值保存到會話中。 您可以采用多種格式來執行此操作,但是用逗號分隔的簡單列表可能會很好。
在WebForm2上的Page_Load事件中,您可以讀取該會話值,或者直接將數據與該會話值綁定到文本框中,或者執行需要做的任何事來操縱數據。
在第二種形式的代碼后面,您還可以使用Control.FindControl方法直接從第一種形式中獲取值。 查詢字符串可能是另一個選擇。 不敲其他答案,但是會話有時會很棘手。 盡管它們是一個簡單的解決方案,但是根據您的應用程序以及在某些情況下取決於瀏覽器的安全設置,它們可能會丟失。 不過,這主要是使用HTTPS時要考慮的問題。 對此的另一個參考可能是ASP.NET Web Pages中的跨頁發布 。
有許多不同的方法可以實現您需要執行的操作。 我的方法是將兩個頁面都嵌入一種形式,並使用JavaScript或jQuery處理數據,並使用WebMethods防止使用回發。 對用戶而言,這也將是一個更加流暢的呈現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.