0

嗨,我在控制页面上有 textarea,它使用 jQuery 我“变成”了一个简单的 HTML 文本编辑器(允许用户加粗文本并创建简单的无序列表)。

提交页面时,我试图获取 textarea 中的值并处理到数据库中(保留 textarea 内的 html 标记)但我找不到控件,因此无法获取里面的标记它。

所以页面类似于(它在工作的服务器上,所以这是来自内存)。

<div id="zone">
   <textarea id="txtDescription" cols="20" rows="2"></textarea>
</div>

当表单提交时,我正在运行

HtmlTextArea zArea = (HtmlTextArea)Page.FindControl("txtDescription");

尽管我没有收到任何错误,但 zArea 的值始终为空。

可能是我以错误的方式进行此操作,因此非常欢迎任何帮助。

谢谢,克雷格

已编辑* * 应用 runat=server 方法允许我在页面后面的代码中引用该值,但我现在正在努力使用 jQuery 来“查找”控件。母版页包含如下 jQuery 代码:

<script type="text/javascript">
    $(document).ready(function () {
        $('#ctl00_myJobZoneAddition_txtHTMLArea').jqte();
    });
</script>

此母版页具有对 control.ascx 页面的引用

<myWeb:JobZoneAddition ID="myJobZoneAddition" runat="server"/>

并且在这个控件上存在实际的文本区域:

<textarea id="txtHTMLArea" runat="server" cols="20" class="jobDescription" name="txtHTMLArea" rows="8"></textarea>

任何关于如何在不命名 ctl00_myJobZoneAddition_txtHTMLArea 的情况下访问此文本区域的帮助都会受到极大的欢迎。

再次感谢

4

2 回答 2

0

您好,您必须将值为“server”的属性 runat 添加到您的控件中

 <textarea id="txtDescription" cols="20" rows="2" runat="server"></textarea>
于 2012-07-30T18:54:37.463 回答
0

通过将runat="server"属性添加到您的 textarea 控件,您将能够从代码隐藏中访问您的控件,如下所示:

string description = txtDescription.value;

编辑:根据您对我的回答的评论,您似乎需要使用客户端 ID。当您将runat="server"添加到控件时,它将在代码隐藏中可见。但是,您现在无法从客户端(例如您的 jQuery)以相同的方式访问该控件。您必须使用控件的ClientID,而不是通常使用的 ID 属性。这是一个例子:

$(document).ready(function () {
    $('#<%= txtDescription.ClientID %>').click(...)
});

如果您运行您的应用程序并查看源代码,您会看到“txtDescription”被一个唯一值替换。此值称为客户端 ID。

于 2012-07-30T18:59:16.810 回答