如何从 MasterPage 的代码隐藏中访问 TextArea

Posted

技术标签:

【中文标题】如何从 MasterPage 的代码隐藏中访问 TextArea【英文标题】:How to access TextArea from code-behind from a MasterPage 【发布时间】:2014-10-29 09:33:52 【问题描述】:

我的内容页面中有一个 TextArea:

<textarea id="taskNotes" runat="server" class="taskNotes"></textarea>

在我的内容页面中也是一个标签:

<asp:Label runat="server" ClientIDMode="Static" ID="lblStartDate" Text="TEST"></asp:Label>

在我的 MasterPage 中,我可以像这样访问标签:

lblStartDate = (System.Web.UI.WebControls.Label)ContentMain.FindControl("lblStartDate");

如何以与访问标签相同的方式访问 TextArea?

【问题讨论】:

【参考方案1】:
var txtTaskNotes = (System.Web.UI.htmlControls.HtmlTextArea)ContentMain.FindControl("taskNotes");

应该这样做。但从内容页面填充母版页中的受保护属性可能更明智。这样您就不会将母版页绑定到单个内容页面布局。

【讨论】:

var txtTaskNotes 需要是全局声明,但我不能使用 var 作为全局声明:/ “全球”是什么意思?如果您希望范围是整个母版页,您可以将其设置为类的属性:msdn.microsoft.com/en-us/library/aa288470(v=vs.71).aspx【参考方案2】:

在 ASP.Net 中,您希望将 TextBoxTextMode="MultiLine" 一起使用。它将呈现为 TextArea

<asp:TextBox id="TaskNotesTextBox" TextMode="MultiLine" 
    Columns="10" Rows="5" runat="server" />

然后您可以像访问标签一样访问它 -

var taskNotesTextBox = (TextBox)ContentMain.FindControl("TaskNotesTextBox");

【讨论】:

我的 TextArea 在它所在的 DIV 内的高度和宽度必须为 100%,并且使用 TextBox 我无法正确显示它:/ TextBox with MultiLine 与高度和宽度无关;它只是呈现 textarea 标记 - 与您的问题相同。如果你想要 100% 的高度和宽度,你需要用 CSS 来操作。

以上是关于如何从 MasterPage 的代码隐藏中访问 TextArea的主要内容,如果未能解决你的问题,请参考以下文章

如何从 css 获取图像信息到 MasterPage'gridview 中?

尝试在 MasterPage 中查找控件时出现问题

从我的 Masterpage 调用我的 HomeController 中的方法

如何从代码隐藏中访问控件模板的元素

如何从代码隐藏中访问控件模板的元素

如何从 View 和关联的代码隐藏文件中访问我的 ViewModel?