每次IsCallback都会变错

时间:2012-02-21 15:09:26

标签: c# asp.net gridview

这是我的标记页面,其中有一个按钮可以从数据库中搜索数据并显示在网格

这是我背后的代码

if (!IsPostBack)
    {
        LblInfo.Text = "Page Loaded";
    }

    if (IsCallback)
    {
        LblInfo.Text = "Page Called Back";
    }

请解释为什么每次IsCallback = fasle?

1 个答案:

答案 0 :(得分:4)

IsCallBack是一种特殊的回发

唯一的时间IsCallBack是真的,如果IsPostBack也是如此。

因此他们无法访问您的“Page Called Back”代码。见What is the difference between Page.IsPostBack and Page.IsCallBack?

这两个变量可能恰好产生3个条件:

  • IsPostBack和IsCallBack都是false:初始页面加载。
  • IsPostBack是真的; IsCallBack是错误的:发生了完整的回发。
  • IsPostBack是真的; IsCallBack是真的:请求来自ajax。

没有IsPostBack为false且IsCallBack为真的情况。

所以你的代码应该是:

if (!IsPostBack) {
    { 
        LblInfo.Text = "Initial Page Loaded"; 
    } 
} else {
    if (IsCallback) 
    { 
        LblInfo.Text = "Page Called Back"; 
    } else {
        LblInfo.Text = "Page Posted Back";
    }
}