2011-04-28 175 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」 是該項目的主網頁的名稱。

相關問題