问题描述
由于查询条件比较多,查询后跳转到另一页面,如何吧这些查询条件传到结果页面,有什么好的方法?
解决方案
解决方案二:
是ASP.NET2.0么?如果是服务器按钮控件有个postbackurl这个属性设为要跳转的页面的URL然后在跳转后的页面可以得到前一个页面的控件然后访问相关控件的属性其他还有用session,cache等等都可以
解决方案三:
例子FirstPage.aspx<%@PageLanguage="C#"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><scriptrunat="server">publicStringUserName{ get{ returnthis.txtName.Text; }}protectedvoidButton1_Click(objectsender,EventArgse){ Label1.Text="Postbackfromself.YourNameis:"+txtName.Text;}</script><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"> <metacontent="text/JScript"http-equiv="content-script-type"/> <title>FirstPage</title></head><body> <formid="form1"runat="server"> <div> <h3>TheFristPage</h3> YourName: <asp:TextBoxID="txtName"runat="server"/> <asp:LabelID="Label1"runat="server"EnableViewState="False"/><br/> <br/> <asp:ButtonID="Button1"runat="server"Text="PostbacktoSamePage"OnClick="Button1_Click"/><br/> <br/> <asp:ButtonID="Button2"runat="server"Text="PostbacktoSecondPage"PostBackUrl="~/SecondPage.aspx"/><br/> </div></form></body></html>SecondPage.aspx<%@PageLanguage="C#"%><%@PreviousPageTypeVirtualPath="~/FirstPage.aspx"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><scriptrunat="server">protectedvoidPage_Load(objectsender,EventArgse){ this.Label1.Text="YourNameis:"+PreviousPage.UserName;}</script><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title>SecondPage</title></head><body><formid="form1"runat="server"><div><h1>ThisistheSecondPage</h1><p><asp:LabelID="Label1"runat="server"></asp:Label> </p></div></form></body></html>一定注意SecondPage.aspx里红色的标记一定要有在SecondPage.aspx.cs里取FirstPage.aspx的值:if(Page.PreviousPage!=null){ TextBoxtxtName=(TextBox)Page.PreviousPage.FindControl("txtName"); if(txtName!=null) { Label1.Text=txtName.Text; }}
解决方案四:
用Session吧,感觉比较容易理解把查询条件都用Session保存起来,然后用的时候直接用Session就OK了
解决方案五:
Querystring
解决方案六:
感觉这种类型的数据既不属于全局,也不属于私有,用Session的话每个用户都要开辟内存空间,用Cache的话不同用户会互相干扰,感觉QueryString最合适。或者可以把串保存到当前页的hiddenfield里,在目标页上通过Page.PreviousPage获取当前页的引用,进而通过FindControl找到HiddenField,找到串,但这样用FindControl效率比较低
解决方案七:
kaka:哪里有你说的那个控件呀?
解决方案八:
Response.Redirect("Result.aspx?mdname="+md_name+"&mdcode="+md_code+"&md_city="+md_city+"&md_types="+md_types+"&status="+status);感觉用Session不爽!Session清空问题很郁闷
解决方案九:
7楼方法
解决方案十:
kaka:哪里有你说的那个控件呀?----------------------------他的意思是指按钮控件的postbackurl属性.
解决方案十一:
可以考虑建一个查询条件实体~然后对实体进行赋值~实体序列化成字符串后进行传传到之后进行反序列化~Result.aspx?query=querystring有一点就是序列化后的querystring很长~
解决方案十二:
querystring
解决方案十三:
就用7楼的就很不错了.
解决方案十四:
Response.Redirect("Result.aspx?mdname="+md_name+"&mdcode="+md_code+"&md_city="+md_city+"&md_types="+md_types+"&status="+status);传过去然后stringmdname=request["mdname"];