2012-06-13 45 views
0

我正在處理asp.net中的某些事情,該事情要求允許用戶更改文本區域內的信息內容。會發生的是,我通過獲取外部.txt,.html或.rtf文件中的信息來設置文本區域內容,然後使用innerHtml將其設置到文本區域中。使用innerHtml設置後獲取textarea內容

至於檢索數據,我也使用innerHtml在頁面後面的.cs文件中執行此操作。問題是,當我嘗試這樣做時,即使我已經替換了每一行文本,我也會恢復之前設置的內容。例如,如果我原先設置了「這是最初的文本」,那麼之後將它全部替換爲「新文本」,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中,現在調試窗口只是爲了看看我設法修改文本。

+0

顯示一些代碼,HTML和C# – codingbiz

+0

沒有看到任何代碼,我會假設你正在填補在頁面加載textarea的沒有這個加載代碼 是'如果(!Page.IsPostBack){//加載代碼}' – peroija

回答

0

你的代碼改成這樣:

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

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

因爲Page_Load中總是會excuted即使你點擊Button1。

+0

謝謝,這似乎解決了我的問題。 – pirphesdercia

0

您可以使用jQuery來獲取文本區域內的值

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

var text = $('#yourTextAreaId').val(); 
相關問題