2012-07-19 112 views
2

我已經在我的網頁日曆,和page_load活動期間我設置的網頁拿今天的日期,並加載數據,今天的GridView中的日期開始。在Gridview中允許分頁。當事件觸發,頁面從默認

我也有一個Calendar_Selectiondate事件,當有人點擊日曆的日期,它會顯示數據該日期。日期值顯示在會話變量中。在這種情況下,當我點擊分頁超鏈接2時,它將帶我到當天的第二頁,而不是所選日的第二頁。我知道這是因爲每當我點擊該超鏈接2並且日期設置爲今天日期而不是所選日期時,它正在經歷Page_Load事件。

public partial class UKMail_UKMail7Day : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Calendar.SelectedDate = DateTime.Today; 
     Session["MailDate"] = Calendar.SelectedDate; 
     UKMail7DayGridView.DataSourceID = "UKMail7DaySelected"; 
     UKMail7DayGridView.DataBind(); 
     //UKMail7DayGridView.DataSourceID = "UKMail7DayAllData"; 
     //UKMail7DayGridView.DataBind(); 
    } 
    protected void Calendar_SelectionChanged(object sender, EventArgs e) 
    { 
     Session["MailDate"] = Calendar.SelectedDate; 
     UKMail7DayGridView.DataSourceID = "UKMail7DaySelected"; 
     UKMail7DayGridView.DataBind(); 
    } 
} 
+2

代碼...我們可以」解決我們看不到的問題。我猜這可能是一些簡單的修復,如檢查IsPostBack,但.. – walther 2012-07-19 19:57:02

+0

@Walther我加了代碼..我不知道如何格式化它。請幫忙 – user1345260 2012-07-19 20:02:28

+0

@DavidStratton會做..對不起 – user1345260 2012-07-19 20:03:06

回答

2

在你的Page_Load事件不管是什麼觸發了回發執行。如果您的代碼只在第一次加載頁面時發生,請將其放在if(!Page.IsPostback)塊中。

void Page_Load(object sender, EventArgs e) 
{ 

    // code that will execute on every postback, button click, etc. 
    if(!Page.IsPostback) 
    { 
     //code that will only execute the first time the page is loaded. 
    } 

} 

強烈推薦閱讀:使用更新後的代碼(每個ASP.NET開發人員應該知道這一點。)http://msdn.microsoft.com/en-us/library/ms178472.aspx

編輯:

public partial class UKMail_UKMail7Day : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostback) 
     { 
      Calendar.SelectedDate = DateTime.Today; 
      Session["MailDate"] = Calendar.SelectedDate; 
      UKMail7DayGridView.DataSourceID = "UKMail7DaySelected"; 
      UKMail7DayGridView.DataBind(); 
      //UKMail7DayGridView.DataSourceID = "UKMail7DayAllData"; 
      //UKMail7DayGridView.DataBind(); 
     } 
    } 
    protected void Calendar_SelectionChanged(object sender, EventArgs e) 
    { 
     Session["MailDate"] = Calendar.SelectedDate; 
     UKMail7DayGridView.DataSourceID = "UKMail7DaySelected"; 
     UKMail7DayGridView.DataBind(); 
    } 
} 
+0

工作就像一個魅力,並感謝該鏈接 – user1345260 2012-07-19 20:24:48

1

在網頁加載事件,設置此

if(Page.IsPostback) 
    return; 

之前,你的任何其他代碼做,所以它不會在回發執行。我希望我能正確理解你。

+0

你能看到代碼並幫助我嗎? Thnaks – user1345260 2012-07-19 20:03:29

+0

你嘗試過IsPostBack塊嗎?這就是你所需要的所有東西 – 2012-07-19 20:05:50

+0

大衛在第二,但有一個更有用的答案,由於良好的建議。 – 2012-07-19 20:08:00