2011-04-28 107 views
1

我有一个TextBox和LinkBut​​ton的母版页。如果我在TextBox中输入文本并尝试从LinkBut​​ton的click事件访问它,它总是以空字符串的形式返回。我正在尝试拾取输入的文本,并将其作为参数传递给另一个页面。为什么我不能访问我的webform上的textbox.text属性?

示例代码:

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

母版页上的文本框和链接按钮都是?您当前所在的页面是否将page_load或init中的文本框设置为空白? – Fishcake 2011-04-28 14:25:31

回答

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 
+0

完美!这为我解决了这个问题(由于两个控件都在主控上,所以删除了'MasterPage'位)。任何想法我的语法出了什么问题? – Simon 2011-04-28 14:34:50

1

我会暴露控件母版页上的公共属性。这将为您提供更好的设计时支持。

母版页

<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” 是该项目的主网页的名称。

相关问题