为什么我不能访问我的webform上的textbox.text属性?
问题描述:
我有一个TextBox和LinkButton的母版页。如果我在TextBox中输入文本并尝试从LinkButton的click事件访问它,它总是以空字符串的形式返回。我正在尝试拾取输入的文本,并将其作为参数传递给另一个页面。为什么我不能访问我的webform上的textbox.text属性?
示例代码:
Response.Redirect(HttpUtility.HtmlEncode(String.Concat("~/Pages/SearchResults.aspx?search=", Me.SearchTextBox.Text.Trim)))
答
试试这个
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
答
我会暴露控件母版页上的公共属性。这将为您提供更好的设计时支持。
母版页
<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” 是该项目的主网页的名称。
母版页上的文本框和链接按钮都是?您当前所在的页面是否将page_load或init中的文本框设置为空白? – Fishcake 2011-04-28 14:25:31