主頁 > 知識(shí)庫 > Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法

Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法

熱門標(biāo)簽:南陽外呼系統(tǒng)定制化 電話機(jī)器人軟件銷售工作 同安公安400電話怎么申請(qǐng)流程 蘋果手機(jī)凱立德地圖標(biāo)注 預(yù)測式外呼系統(tǒng)使用說明 申請(qǐng)400電話手續(xù) 合肥電銷外呼系統(tǒng)哪家公司做的好 百度ai地圖標(biāo)注 玉林市機(jī)器人外呼系統(tǒng)哪家好
能讓數(shù)據(jù)在 兩個(gè)不同站點(diǎn)之間傳遞嗎? 我現(xiàn)在是想A站點(diǎn)的數(shù)據(jù) 傳遞到B站點(diǎn).......

建議使用Cache
(1)不太影響程序性能不太可能,你都說了,是大量數(shù)據(jù)。我舉個(gè)例子,你是從A.aspx傳到B.aspx。那么如果有兩個(gè)用戶都會(huì)訪問A,那你的數(shù)據(jù)是否要做到不會(huì)影響到不同的客戶端?如果是這樣的話,那么你存儲(chǔ)的地方勢必不能用Cache(不是絕對(duì)不能用,但是你必須區(qū)分客戶端,你要做的工作更多),只能用Session, Cookies, ViewState, QueryString, Form等方法。

第二個(gè)條件:如果不止一個(gè)頁面要做這個(gè)操作,比如A.aspx和B.aspx都需要傳遞“大量數(shù)據(jù)”給C.aspx,那么你如果存在Session里,又不能使之互相覆蓋。所以如果是少量數(shù)據(jù),比如只是一個(gè)數(shù)字,那么用ViewState, QueryString, Form都可以,只是他們需要多一趟往返于服務(wù)器和客戶端。而象你這樣大量數(shù)據(jù)的話,QueryString估計(jì)是不能用了。而ViewState其實(shí)也是Form。你可以考慮一下實(shí)際情況選擇具體合用的方法。

(2)使用Server.Transfer方法
這個(gè)才可以說是面象對(duì)象開發(fā)所使用的方法,其使用Server.Transfer方法把流程從當(dāng)前頁面引導(dǎo)到另一個(gè)頁面中,新的頁面使用前一個(gè)頁面的應(yīng)答流,所以這個(gè)方法是完全面象對(duì)象的,簡潔有效。下面這個(gè)代碼是展示在需要很多個(gè)參數(shù)的時(shí)候,使用的方法,如果參數(shù)比較少就沒必要使用這個(gè)方法了.

如果讓所有的查詢頁面都繼承一個(gè)接口,在該接口中定義一個(gè)方法,該方法的唯一作用就是讓結(jié)果頁面獲得構(gòu)建結(jié)果時(shí)所需的參數(shù),就可實(shí)現(xiàn)多頁面共享一個(gè)結(jié)果頁面操作!
1、先定義一個(gè)類,用該類放置所有查詢參數(shù)
復(fù)制代碼 代碼如下:

/**//// summary>
/// QueryParams 的摘要說明
/// /summary>
public class QueryParams
{
private string firstName;
private string lastname;
private int age;
public string Firstname
{
get { return this.firstname; }
set { this.firstname = value; }
}
public string LastName
{
get { return this.lastname; }
set { this.lastname = value; }
}
public string Age
{
get { return this.age; }
set { this.age = value; }
}
}

2、接口定義
復(fù)制代碼 代碼如下:

/**//// summary >
/// 定義查詢接口。
/// /summary >
public interface IQueryParams
{
/**//// summary >
/// 參數(shù)
/// /summary >
QueryParams Parameters { get;}
}

3、查詢頁面繼承IQueryParams接口(QueryPage.aspx)
QueryPage.aspx
復(fù)制代碼 代碼如下:

form id="form1" runat="server">
div>
asp:TextBox ID="txtFirstName" runat="server">/asp:TextBox>
asp:TextBox ID="txtLastName" runat="server">/asp:TextBox>
asp:TextBox ID="txtAge" runat="server">/asp:TextBox>
asp:Button ID="btnEnter" runat="server" Text="Button" OnClick="btnEnter_Click" />/div>
/form>

QueryPage.aspx.cs
復(fù)制代碼 代碼如下:

public partial class QueryPage : System.Web.UI.Page, IQueryParams
{
private QueryParams queryParams;
public QueryParams Parameters
{
get
{
return queryParams;
}
}
public void btnEnter_Click(object sender, System.EventArgs e)
{
//賦值
queryParams = new QueryParams();
queryParams.FirstnName = this.txtFirstName.Text;
queryParams.Lastname = this.txtLastName.Text;
queryParams.Age = this.txtAge.Text;
Server.Transfer( "ResultPage.aspx ");
}
protected void Page_Load(object sender, EventArgs e)
{ }
}

4、接收頁面(ResultPage.aspx)
ResultPage.aspx.cs
復(fù)制代碼 代碼如下:

public partial class ResultPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
QueryParams queryParams = new QueryParams();
IQueryParams queryInterface;
//實(shí)現(xiàn)該接口的頁面
if (Context.Handler is IQueryParams)
{
queryInterface = (IQueryParams)Context.Handler;
queryParams = queryInterface.Parameters;
}
Response.Write("FirstName: ");
Response.Write(queryParams.FirstName);
Response.Write(" br/ >Lastname: ");
Response.Write(queryParams.LastName);
Response.Write(" br/ >Age: ");
Response.Write(queryParams.Age);
}
}
您可能感興趣的文章:
  • asp.net中在用ajax格式傳遞數(shù)據(jù)到aspx頁面時(shí)出現(xiàn)亂碼

標(biāo)簽:海南 揚(yáng)州 嘉興 臺(tái)州 南京 南昌 南京 淄博

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法》,本文關(guān)鍵詞  Asp.net,在,頁面,間,傳遞,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Asp.net在頁面間傳遞大量數(shù)據(jù)(數(shù)據(jù)表)建議采用的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章