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