C# 清除事件参数
我有一个带有C# 清除事件参数,c#,javascript,updatepanel,C#,Javascript,Updatepanel,我有一个带有和2个控件的表单,用于保存和重置表单。我正在使用javascript\uuu doPostBack()函数触发,并在面板应重置时在其\uu EVENTARGUMENT中传递一个值 My codebehind通过检查PreRender上的值 Request.Params.Get("__EVENTARGUMENT") 确定是否使用表单的原始数据重置表单 如果先前重置了面板,则按下“保存”按钮时,\uu EVENTARGUMENT似乎会延迟,因此在回发时再次重置我的表单 我已尝试使用以下
和2个
控件的表单,用于保存和重置表单。我正在使用javascript\uuu doPostBack()
函数触发
,并在面板应重置时在其\uu EVENTARGUMENT
中传递一个值
My codebehind通过检查PreRender上的值
Request.Params.Get("__EVENTARGUMENT")
确定是否使用表单的原始数据重置表单
如果先前重置了面板,则按下“保存”按钮时,\uu EVENTARGUMENT
似乎会延迟,因此在回发时再次重置我的表单
我已尝试使用以下方法清除加载页面中的事件参数:
Request.Params.Clear();
及
但该集合是只读的。我在另一篇文章中发现,使用javascript:
window.document.getElementById('__EVENTARGUMENT').value = '';
但这似乎也不起作用。有什么想法吗?刚刚想好了
解决方案
\uu EVENTARGUMENT
可以通过以下方式简单地清除:
theForm.__EVENTARGUMENT.value = '';
如果有必要在每次加载
时执行此操作,请将以下内容放入UpdatePanel中:
<script type="text/javascript">
Sys.Application.add_load(function () {
theForm.__EVENTARGUMENT.value = '';
});
</script>
这是为\uu EVENTARGUMENT
设置值的地方,因此是从codebehind引用的。我正要自杀,很好的解决方案!
<script type="text/javascript">
Sys.Application.add_load(function () {
theForm.__EVENTARGUMENT.value = '';
});
</script>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form'];
if (!theForm) {
theForm = document.form;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>