2012-07-19 116 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