Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何防止回发时重置我的ASP.NET复选框?_C#_Asp.net_.net_Web Applications_Postback - Fatal编程技术网

C# 如何防止回发时重置我的ASP.NET复选框?

C# 如何防止回发时重置我的ASP.NET复选框?,c#,asp.net,.net,web-applications,postback,C#,Asp.net,.net,Web Applications,Postback,我调用以下代码: protected void Page_Load(object sender, EventArgs e) { //Note that this is not my actual code //this illustrates what happens if(IsPostBack) { CheckBox1.Checked = true; } } 但结果是,回发后,复选框不接受我的命令将其设置为“true”,并将代码的某个位

我调用以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    //Note that this is not my actual code
    //this illustrates what happens
    if(IsPostBack)
    {
        CheckBox1.Checked = true;
    }
}
但结果是,回发后,复选框不接受我的命令将其设置为“true”,并将代码的某个位置重置为用户在控件中选择的任何内容

如何防止这种情况发生?

CTRL+F“CheckBox1”某个地方有代码将其设置为false


要检查的另一件事是ViewState已打开,默认情况下应该是打开的。如果在回发后不希望用户选择保持不变,请将特定复选框的
EnableViewState=“true”
,也默认设置为true,将控件的
EnableViewState
属性设置为
False

回发发生在DropDownList控件更改之后,但是 该复选框需要根据新选择进行更新


因此,在DropDownList的selected index change事件中,设置CheckBox1.Checked值

如果(!IsPostBack){CheckBox1.Checked=true;}则在任何代码将其设置为false之后,必须将其设置为true所以用户选中了复选框,在回发时您不想让选中的值保持不变?@YuriyGalanter:没那么简单。回发发生在DropDownList控件更改后,但复选框需要根据新选择进行更新。是什么触发回发、下拉选择的索引更改或按钮单击?是否希望在回发时始终选中复选框?回发时有重定向吗?我以为用户设置为true,而它被重新设置为false,我建议打开viewstate,但并不真正理解question@ScottSelby我的理解是,在下一次回发时进行选择之后,它不需要持久化,而是通过代码进行更改。我可能错了,谢谢你们。我确实在复选框中添加了
EnableViewState=“false”
,但没有任何帮助…@ScottSelby:正如我前面所说的——回发发生在DropDownList控件发生更改之后,但是复选框需要根据新的选择进行更新。@c00000fd您可以发布您的代码吗?您是如何在事件处理程序中设置选中值的?不可以。在我的代码中,除了在一个地方设置之外,没有其他地方设置它。它必须与viewstate有关,或者不管他们怎么称呼它……是的,我想到了,但我需要根据该复选框在page_Load()的页面上创建控件。@c00000fd您能用页面加载的完整代码更新问题吗?好的。我想我把它修好了。通过在DropDownList控件更改而不是Page_Load()时从事件中更新我的控件,似乎可以做到这一点。显然,当您在回发期间从Page_Load()设置控件时,稍后会重新初始化这些控件。。。