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()设置控件时,稍后会重新初始化这些控件。。。