IsPostback定制

tes*_*est 0 c# asp.net postback webforms

我正在尝试创建我的'自定义IsPostBack',我所做的就是创建一个bool属性,

bool test;
public bool MyPostBack
{
    get{ test = Page.IsPostBack; return test; }
    set{ test = value; }
}
Run Code Online (Sandbox Code Playgroud)

在调试时,如果将值设置为false,则当测试为真时,按下F11后,测试保持不变!我觉得这很奇怪.你知道为什么吗?谢谢.

Mat*_*low 6

你在属性getter中做的第一件事是重置它:

test = Page.IsPostBack;
Run Code Online (Sandbox Code Playgroud)

因此,设置MyPostBack属性基本上没有任何效果,因为每次获取属性值时都会覆盖您设置的值.

你可能想要更像这样的东西:

bool test;

public bool MyPostBack
{
    get{ return test; }
    set{ test = value; }
}

protected void Page_Load(object sender, EventArgs e)
{
     MyPostBack = Page.IsPostBack;
}
Run Code Online (Sandbox Code Playgroud)

私有变量(test)在Page Load事件中初始化为页面的IsPostBack属性的值.