使用innerHtml设置后获取textarea内容

时间:2012-06-13 01:14:30

标签: c# asp.net html

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

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

有没有其他方法可以获取新文本或让内部HTML实现我想要的方式?

编辑:忘记包含代码。

在代码的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的调试窗口中打印出来,现在只是为了查看我是否设法获取更改的文本。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

将您的代码更改为:

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

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

因为即使您点击了按钮1,也会始终执行Page_Load。