检索MasterPage文本框控制回发到另一个页面

时间:2012-12-05 01:28:10

标签: c# asp.net master-pages

我花了两天时间试图找出解决这个问题的方法,甚至尝试过ExpertExchange,但我仍无法得到解决方案。我是ASP.Net的新手程序员(使用C#),我不想使用字符串/ url帖子

我有一个MasterPage,其中有一个名为tbSearchString的文本框。这是一个简单的框,用户可以输入内容,然后它回发到另一个页面SearchResults.aspx所以我还有其他页面,如使用MasterPage的Default.aspx。

我已经尝试了几乎所有的东西,并且已经阅读了几乎我在网上找到的所有帖子,而且无论变量总是空的是什么。

我在searchResults loadpage事件上使用了这个代码,并且这些变量中的每一个都为null,即使我在页面文本框中输入一个值并单击按钮以回发到SearchResults页面,它唯一有效的时间是如果我在searchResults页面上并提交。

SearchResults返回结束页

protected void Page_Load(object sender, EventArgs e)
{

    TextBox SearchString;
    TextBox SearchString2;
    TextBox SearchString3;
    TextBox SearchString5;   

    if (Page.PreviousPage != null)  //This is true on every test
    {

        SearchString = (TextBox)Page.PreviousPage.Master.FindControl("tbSearchString");
        SearchString2 = (TextBox)PreviousPage.Master.FindControl("tbSearchString");
        SearchString3 = (TextBox)Master.FindControl("tbSearchString");
        TextBox LoginControlx = (TextBox)PreviousPage.FindControl("Form1");

       if (LoginControlx != null)
        {
          TextBox SearchString4 = (TextBox)LoginControlx.FindControl("tbSearchString");
        }
  }

MainWebsite.Master页面代码

<asp:TextBox ID="tbSearchString" runat="server"></asp:TextBox>
                <asp:Button ID="btnSearch1" runat="server" Text="Search" PostBackUrl="~/SearchResultRentalEquiptment.aspx" />

我在CS后端页面中没有任何内容

所以在Default.aspx页面上

没有什么特别只是Masterpage和一些文本内容,我在文本框中输入一些文本转到SearchResults页面,我无法从Default或任何其他页面获取Textbox控件的darn值。

你说什么聪明人?

3 个答案:

答案 0 :(得分:1)

如何将表单重定向到搜索结果表单?如果您使用的是Response.redirect,则Page.PreviousPage.Master.FindControl下的值将为null。尝试使用 Server.Transfer 查看它是否有效。

答案 1 :(得分:0)

以这种方式:

假设这是您的母版页代码:

<asp:TextBox ID="searchbox" runat="server" /><br />
<asp:Button ID="sendSearch" runat="server" PostBackUrl="~/Results.aspx" Text="Search" />

在一天结束时,所有关于HTTP POST,所以在目标网页Results.aspx PageLoad中:

protected void Page_Load(object sender, EventArgs e)
{
    string _foo = Request.Form[this.Master.FindControl("searchbox").UniqueID];
}

H个....

答案 2 :(得分:0)

结帐Session。当我需要从一个页面到另一个页面获取数据时,我一直使用它。我现在无法为你写出一个完整的例子,但是我的头脑中应该有以下工作:

//page1.aspx:

protected void btnSubmit_Click(object sender, EventArgs e)
{
     string greetingString = "Hello";
     Session["MyValue"] = greetingString;
     Response.Redirect("page2.aspx");
}

//page2.aspx:

protected void Page_Load(object sender, EventArgs e)
{
     Response.Write(Session["MyValue"].ToString());  //prints "Hello"
}