在变量中存储列

时间:2010-10-22 08:47:16

标签: asp.net sql-server

我希望在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 个答案:

答案 0 :(得分:1)

您的用例不明确,但我会假设您在txtEditorAnswer具有焦点时需要“已标记”文本,而在焦点移开时则需要“未标记”文本。

在这种情况下,您可以将属性附加到txtEditorAnswer,我们称之为RawText

On Init:

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

聚焦:

txtEditorAnswer.Text = txtEditorAnswer.RawText;

On LostFocus:

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

(视情况而定)。

或者,正如@Andomar指出的那样,您可以使用第二个控件作为输入txtEditorAnswer的文本的“预览”。