0

我正在研究asp.net 中的一些东西,它需要允许用户更改文本区域内的信息内容。发生的情况是,我通过在外部 .txt、.html 或 .rtf 文件中获取信息来设置文本区域内容,然后使用 innerHtml 将其设置到文本区域中。

至于检索数据,我也在页面后面的 .cs 文件中使用 innerHtml 来执行此操作。问题是当我尝试这样做时,即使我已经替换了每一行文本,我也会恢复以前设置的内容。例如,如果我最初设置“这是初始文本”,然后将其全部替换为“新文本”,innerHtml 只会返回“这是初始文本”。

有没有另一种方法来获取新文本或让 innerHtml 做我想做的事?

编辑:忘记包含代码。

在代码的 aspx 方面,我只有一个简单的文本区域,
<textarea id="TextArea1" cols="80" rows="10" runat="server"></textarea>

在 aspx.cs 方面,

    protected void Page_Load(object sender, EventArgs e)
    {
        ces = new ContentEditorService.ContentEditorService();
        strRtfDir = Server.MapPath("Testfile.rtf");

        string strContents = ces.loadEditorContents(strRtfDir);
        TextArea1.InnerText = strContents;
    }

其中 ces 加载一个单独的 .cs 文件,用于加载和保存文本。

至于获取内容,我正在使用

    protected void Button1_Click(object sender, EventArgs e)
    {
        string strTxtArea = TextArea1.InnerHtml;

        System.Diagnostics.Debug.WriteLine(strTxtArea);   
        //ces.saveEditorContents(strContents, strRtfDir);
    }

它现在获取内容并将它们打印在 Visual Studio 的调试窗口中,只是为了查看我是否设法获取更改的文本。

4

2 回答 2

0

您可以使用 jquery 来获取文本区域内的值

var text = $('#yourTextAreaId').html();

或者

var text = $('#yourTextAreaId').val();
于 2012-06-13T01:48:54.633 回答
0

将您的代码更改为:

    if (!IsPostBack)
    {
        ces = new ContentEditorService.ContentEditorService();
        strRtfDir = Server.MapPath("Testfile.rtf");

        string strContents = ces.loadEditorContents(strRtfDir);
        TextArea1.InnerText = strContents;
    }

因为即使您单击了 Button1,Page_Load 也将始终被执行。

于 2012-06-13T09:53:10.970 回答