为什么我不能在我的webform上访问textbox.text属性?

时间:2011-04-28 14:20:44

标签: asp.net webforms

我有一个带有TextBox和LinkBut​​ton的母版页。如果我在TextBox中输入文本并尝试从LinkBut​​ton的click事件访问它,它总是作为空字符串返回。我正在尝试获取输入的文本并将其作为参数传递给另一个页面。

示例代码:

Response.Redirect(HttpUtility.HtmlEncode(String.Concat("~/Pages/SearchResults.aspx?search=", Me.SearchTextBox.Text.Trim)))

2 个答案:

答案 0 :(得分:1)

试试这个

Dim searchbox as TextBox = TryCast(Me.MasterPage.FindControl("SearchTextBox"), TextBox)

If searchBox IsNot Nothing
    Response.Redirect(HttpUtility.HtmlEncode(String.Concat("~/Pages/SearchResults.aspx?search=", searchbox .Text.Trim)))
End If

答案 1 :(得分:1)

我会在Master页面上将控件公开为公共属性。这将为您提供更好的设计时支持。

母版页

<asp:TextBox ID="txtFirstName" runat="server" />

  public string Firstname 
    {
        get { return txtFirstName.Text; }       
    }

儿童页面

<asp:Literal ID="litText" runat="server" />
<asp:Button ID="btnMasterText" Text="Submit" runat="server" 
onclick="btnMasterText_Click" />

   protected void btnMasterText_Click(object sender, EventArgs e)
    {
        var myMasterPage = Page.Master as SiteMaster;
        litText.Text = myMasterPage.Firstname;
    }

“SiteMaster”是项目中Master页面的名称。