none
通过PostBackUrl提交并跳转页面后,如何接受到ascx控件中的TextBox值 RRS feed

  • 问题

  • 我在一个aspx页面中做了一个查询功能的表单,功能一切正常
    但因为该表单在很多aspx页面中都需要使用,我就把这部分的html代码搬到一个acsx里,路径为base1/SearchPart.ascx

    SearchPart.ascx 文件里如下内容——
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="SearchPart.ascx.cs" Inherits="it66.base1.SearchPart" %>
    <asp:TextBox ID="title" runat="server"></asp:TextBox>
    ……
    <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="../images/button.gif" PostBackUrl="../pages/Search.aspx" />


    在引用此控件的aspx文件中,我都加了如下代码——
    <%@ Register TagPrefix="uc4" TagName="SearchPart1" Src="~/base1/SearchPart.ascx" %>
    ……
    <uc4: SearchPart1 ID="SearchPart1" runat="server" />


    因为做在控件里的表单不能直接通过Request.Form["title"]来取结果,所以采用了一种办法
    我在SearchPart.ascx.cs文件中,加入如下一段代码——
    public string GetTitle
            {
                get { return title.Text; }
            }
    在专门用来接受表单值进行查询处理的一个Search.aspx.cs页面程序中,加入如下测试代码——
    Response.Write(SearchPart1.GetTitle);

    编译后,在浏览器中打开/pages/Search.aspx,在title输入框中输入字符,点击提交按钮后,屏幕上能正确显示之前输入的字符

     

    下面是我碰到的问题————
    Search.aspx页面自己提交给自己是没有问题的,但是如果在另一个页面如Default.aspx的title输入框中填写字符,点击提交按钮,通过PostBackUrl功能跳转到Search.aspx页面,便收不到值。(Default.aspx也内嵌有SearchPart.ascx)
    求教

    2009年1月22日 8:07

答案