一个很简单的程序,
2个页面,一个是Search.aspx, 一个是Result.aspx
Search.aspx上面有一个DropDownList,一个Textbox和一个Button,
在DropDownList选择一项,在Textbox中输入一些内容,然后点击Button,跳到Result.aspx页上,用一个Label控件把刚才在
Search.aspx上的DropDownList选择的内容和Textbox中输入的内容显示出来。<body>
    <form id="Search" runat="server">
    Search<br />
    <asp:DropDownList ID="list1" runat=server OnSelectedIndexChanged="list1_SelectedIndexChanged">
        <asp:ListItem>Title</asp:ListItem>
        <asp:ListItem>ISBN</asp:ListItem>
        <asp:ListItem>Author</asp:ListItem>
        <asp:ListItem>Subject</asp:ListItem>
    </asp:DropDownList>
        <asp:TextBox ID="txt1" runat="server"></asp:TextBox>&nbsp;
        <input type="button" name="Submit" value="Go" onclick="location.href='Result.aspx'" />
    </form>
</body>
</html>现在已经实现了点击Button后跳到'Result.aspx'页面,但是怎样显示Search.aspx上的内容呢?我想在'Result.aspx'的Page_Load里直接写lblMessage.Text=......
但是好像引用不到Search.aspx上的控件。
谁能告诉我怎么办?

解决方案 »

  1.   

    最简单的办法,用url传参数过去
      

  2.   

    search.aspx 中的buttond在点击时,可以用js取DropDownList,TextBox的值 ,组合出来参数,用get方式提交给Result.aspx页面  如点button跳转 window.location='result.aspx?drop=..&txt=..'result.aspx页面接收参数即可
      

  3.   

    如果参数太多,不方便使用url传参,你还可以使用 Server.Transfer 结合Context.Handler实现
      

  4.   

    URL传参,是最直接的实现方式
      

  5.   

    <asp:label ID="lblMessage" runat="server" Text='Search.aspx?List1.SelectedItem.Value & txt1.text'/>这样写吗?运行出来不对怎么办?
      

  6.   

    你这个属于页面传值问题你可以用session,Server.Transfer,URL参数传值
      

  7.   

    url传值
    Result.aspx?k1=list1.SelectedValue&k2=txt1.Text;Result.aspx 后台代码
    string s1=Request["k1"].ToString();
    string s2=Request["k2"].ToString();
      

  8.   

    <asp:label ID="lblMessage" runat="server" Text='Result.aspx?k1=list1.SelectedItem.Value&k2=txt1.Text'/>
    好像还不行
      

  9.   

    参考方法:
    1.同上面的方法一样,也就是Session,Cookie,Applicaton,Cache等状态处理
    2.其实每个页面都有一个后置的类,在每个页面的Page指令中都有一个继承的类.......
      

  10.   

    在前一个页面公布textbox,后一个页面访问前一个页面的公布出来的属性就可以了!
      

  11.   

    这是Result.aspx页面
    <asp:label ID="lblMessage" runat="server" Text=<%=s1%><%=s2%>/>
      

  12.   

    这是属于页面间传值问题,
    如果用Redirect来跳转的话,传值的方法很多,url QueryString,session都可以。
    如果你用Server.Transfer来做,可以在目标页面取原页对象的值,可以在原页面定义属性,当按钮事件时给属性赋好值。
      

  13.   

    还有点儿问题
    <input type="button" name="Submit" value="Go" onclick="location.href='Result.aspx?id=txt1.Text'"/>
    我在文本框中输入了内容然后点击按钮,显示出的居然是“txt1.Text”, 而不是真的txt1中输入的内容,
    哪里写的不对吗?
      

  14.   

    <input type="button" name="Submit" value="Go" onclick="location.href='Result.aspx?id=' + tx1.value "/>
      

  15.   

    这样属于html和asp.net控件混用,容易出问题呢。最好要么全用.net控件+ webForm模型,
    要么全用html,然后在后台通过Request.Form获得html控件的值
      

  16.   

    原来直接用value啊,我就说我用text属性怎么不行<input type="button" name="Submit" value="Go" onclick="location.href='Result.aspx?id=' + list1.value + txt1.value" />
    现在这样已经可以把dropdownlist和text中的内容显示出来了,但是我还想请教下,如果我要在现实的时候中间加一些空格或其他符合该怎么写?
    我试了+ list1.value & "   " & + txt1.value
    还有  + list1.value + "   " + txt1.value
    都不行,应该怎么写才对呢?
      

  17.   

    空格是用"20%"代替的
    + list1.value + "20%" + tx1.value
      

  18.   

    纠正一下应该是:+ list1.value + '%20' + txt1.value
    但是很不智能啊,如果我要加多个空格,就没有办法了,我试了在中间多打几个'%20',但是都只显示一个空格
    对了,还有其它符号呢,我在哪里可以查到每种符号是用什么表示的?
      

  19.   

    这是url编码的表示方式,对于每个字节,可以用%后面跟ASCII码的两位十六进制值表示。
    对于半角字符,直接查ASCII码表;对于汉字,需要查区位码表。 
    百度上面找的,但是还是不知道如果要加多个空格怎么办
      

  20.   

    可以通过表单提交的方式,post传值。