2010-10-22 211 views
2

我希望在UI中將格式化文本轉換爲無格式文本。爲此,我做了以下操作將變量存儲在變量中

 String strInput; 
     String strOutput; 
     strInput = txtEditorAnswer.Text; 
     strOutput = Regex.Replace(strInput, "<[^>]*>", String.Empty).Trim(); 
     txtEditorAnswer.Text = strOutput; 
     txtEditorAnswer.Text = Server.HtmlEncode(txtEditorAnswer.Text); 

但由於它也改變了數據庫中的值,所以它爲未來創建了一個問題。現在我需要在插入數據庫後更改文本。 我該怎麼辦?

+1

有趣的問題。 StackOverflow本身在顯示格式化預覽的同時在文本框中顯示標籤。也許這會對你有用。 – Andomar 2010-10-22 09:32:54

回答

1

你的用例不清楚,但我假設你想在txtEditorAnswer有焦點時使用「標記」文本,而焦點離開時需要「無標記」文本。

在這種情況下,您可以附加屬性到txtEditorAnswer,我們將其稱爲RawText

在初始化:

var text = GetTextFromDatabase(); 
txtEditorAnswer.RawText = text; 
txtEditorAnswer.Text = Regex.Replace(text, "<[^>]*>", String.Empty).Trim(); 

焦點:

txtEditorAnswer.Text = txtEditorAnswer.RawText; 

在引發LostFocus:

txtEditorAnswer.RawText = txtEditorAnswer.Text; 
SaveToDatabase(txtEditorAnswer.RawText); 
txtEditorAnswer.Text = Regex.Replace(txtEditorAnswer.Text, "<[^>]*>", String.Empty).Trim(); 

(重構根據需要)。

或者,正如@Andomar指出的那樣,您可以使用第二個控件,它是您輸入到txtEditorAnswer中的文本的「預覽」。