簡體   English   中英

Response.Redirect和MSCharts

[英]Response.Redirect and MSCharts

我最近一直在研究一個小型應用程序,該應用程序由一個索引頁面組成,該索引頁面包含一些在數據庫中運行的報告,然后使用ASP.NET在某些表格中使用C#來更新該頁面的內容,以了解如何在將來使用MSCharts。

索引頁面可以顯示通過下拉框選擇的我已設置的5個報告中的任何一個。 默認情況下,選擇第一個,以便頁面上始終顯示圖表。

我使圖表起作用並在索引頁面上很好地顯示了我想要它們的內容,並且更新數據庫的表單也完成了它們的工作。 但是,當我單擊其中一個頁面上的“退出”按鈕(將用戶返回索引頁面)時,應該顯示的圖表只是一個紅色的“ x”,就好像圖像不存在一樣。 。 如果刷新頁面,它應該會顯示。

當時的退出按鈕使用Response.Redirect()將用戶發送回索引頁面,我花了一些時間來確認這是正確的方法。 最后,盡管每個站點似乎都表明在頁面執行周期方面兩者之間沒有重大差異,但我還是嘗試改用Server.Transfer()-僅Response.Redirect()發送了一個整體新請求,而Server.Transfer沒有。

盡管如此,使用Server.Transfer()解決了該問題。 好吧,太好了!

誰能解釋為什么這行得通嗎?

更新 -一些代碼,以防萬一。

更新表單中有問題的事件之一-當然是最初使用的Response.Redirect()。

    protected void Exit_Click(object sender, EventArgs e)
    {
        Server.Transfer("Default.aspx");
    }

來自Default.aspx的Page_Load:

    protected void Page_Load(object sender, EventArgs e)
    {
        Report report = new Report(reportList.SelectedIndex);
        ChartPanel.Controls.Add(report.Chart);
    }

Report類的概述-這基本上是我在createChartFromParameters()方法中指定的各種報告的包裝。 它只是完成設置圖表的所有工作,因此它不會最終出現在UI中,然后讓UI接受圖表對象本身。 如果有人覺得它有用,我可以發布實現,但是它很丑陋,而且運行時間很長,所以我寧願不這樣做。

public class Report
{
    private Chart chart { public get; }

    public Report(string title, string command, string x, string y, string label, string legend, SeriesChartType type)

    public Report(int presetChartNum)

    private void createChartFromParameters(string title, string command, string x, string y, string label, string legend, SeriesChartType type, int customcode = 0)  
}

我相信這是對服務器對象和響應對象如何執行重定向的誤解

它與客戶端如何重定向到新資源,從何處重定向到新資源以及事后可以訪問哪些對象有關。

我可以全部輸入,但是這里有很好的資源。

http://techahead.wordpress.com/2007/10/14/aspnet-servertransfer-vs-responseredirect/

暫無
暫無

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

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