2011-07-11 17 views
2

我想执行回发,并将多个值添加到我的查询字符串中。我一直在使用重定向到相同的URL,并简单地添加查询字符串参数,但是当我这样做时,我的视图状态被清除,我需要避免。如何更改回发的QueryString?

由于我正在使用的技术(SharePoint),我必须使用查询字符串传递我的参数。

我做了一些环顾四周,但还没有找到明确的答案,如何使用不同的查询字符串参数完成回发。有没有办法做到这一点?

+0

全asp.net回发?没有ajax? –

+0

是的,完整的回发。 –

+0

为什么不在查询字符串中传递所有参数,并基于此重新绑定数据? – izip

回答

4

只是搞乱了,但是这通过在表单被提交之前通过修改主窗体的action属性(在本例中为ct101)来添加querystrings clientside。 示例代码犯规采取futher回传进去..

<script type="text/javascript"> 
    var el = document.getElementById('ctl01'); 

    el.onsubmit = function (evt) { 
     var url = $(this).attr('action'); 
     $(this).attr('action', url + '?sayHi=Hi'); 
    }; 

</script> 
+0

绝妙的主意!谢谢。 – xr280xr

0

尝试使用Server.Transfer而不是Response.Redirect。 Server.Transfer方法也有第二个参数 - “preserveForm”。如果将此设置为True,则使用诸如Server.Transfer(“WebForm2.aspx”,True)之类的语句,现有查询字符串和任何表单变量仍然可用于要传输到的页面。

所以基本上你可以转移到同一个页面,但是新增了查询字符串参数,你仍然可以访问旧值。

+0

我也在想这个,但是当我到Server.Transfer并传递第二个参数时,我得到一个Stack Oveflow异常。 –