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>