C# 在保留多个文本框和dropdownlists值的同时,在c代码中自动回发

C# 在保留多个文本框和dropdownlists值的同时,在c代码中自动回发,c#,asp.net,C#,Asp.net,我的表单上有几个文本框和下拉列表。当用户提交表单时,我希望在表单上保留其中几个值,但我也希望在表单提交后几秒钟内使它们不可见,以便用户知道表单已提交。我很确定您需要执行autopostback以更改textboxs和dropdownlists的可见性,但我不想执行autopostback,因为我将丢失要保留的字段。有其他选择吗?请你扩大你的问题,让更多的人了解你正在处理的问题,现在这个问题非常模糊 至于使文本框/下拉列表“不可见”,您可以通过Javascript实现这一点: <input

我的表单上有几个
文本框
下拉列表
。当用户提交表单时,我希望在表单上保留其中几个值,但我也希望在表单提交后几秒钟内使它们不可见,以便用户知道表单已提交。我很确定您需要执行
autopostback
以更改
textboxs
dropdownlists
的可见性,但我不想执行
autopostback
,因为我将丢失要保留的字段。有其他选择吗?

请你扩大你的问题,让更多的人了解你正在处理的问题,现在这个问题非常模糊

至于使文本框/下拉列表“不可见”,您可以通过Javascript实现这一点:

<input type=text id=text1>
<input type=button value=hide onclick=hide()>
<input type=button value=show onclick=show()>
<script type=text/javascript>
function hide(){
document.getElementById('text1').style.visibility='hidden';
}
function show(){
document.getElementById('text1').style.visibility='visible';
}
</script>

函数hide(){
document.getElementById('text1').style.visibility='hidden';
}
函数show(){
document.getElementById('text1').style.visibility='visible';
}

网页是无状态的。Microsoft在ASP.NET 1.0中引入了ViewState以适应这种情况。我所说的无状态是指客户端(用户的计算机)和服务器(客户端正在查看的网页的宿主)之间没有一致的连接。ViewState是一种介质,创建该介质是为了在回发期间帮助在表单控件上桥接这些值

如果您使用的是ASP.NET MVC,您将丢失方框中的数据。ASP.NET MVC不使用ViewState(谢天谢地)。这就是为什么建议使用ASP.NET MVC使用AJAX与服务器通信的原因。如果您想了解更多信息,请查看以下内容:

如果您使用的是常规网站/web应用程序项目,则如果启用viewstate(默认情况下启用),数据将保持不变

要禁用/启用viewstate,请参阅以下有关ASPX标头的信息:

<%@ Page Language="C#" EnableViewState="false" %>
<%@ Page Language="C#" EnableViewState="true" %>

视图状态:

启用
ViewState
时不会丢失值(默认)。@TimSchmelter文本框的值不是永远无法禁用的“控制状态”吗?(仅手动清除?)您尝试过什么吗?你能展示你的代码吗?“但我也想在表单提交后几秒钟内让它们不可见,这样用户就知道表单已经提交了。”-你能澄清一下吗?我不太明白。如果您正在发布标准表单,用户难道不知道表单仅仅是通过刷新页面提交的吗?当页面加载以响应表单帖子时,是否要使其不可见?或者你是在使用AJAX还是别的什么?当您说“不可见”时,您的意思是不向用户显示它们,还是根本不向输出渲染它们?这有很大的区别。