我将以下div标签保存到SQL DB中:
String StrDiv = "<div STYLE=" + "''"+"font-family: " + lblPreviewPane.Font.Name + "; font-size: " + lblPreviewPane.Font.Size + "; color: " + ColorPicker1.Color + ""+"''" + ">" + lblPreviewPane.Text + "</div>";
以下查询用于更新消息:
String sqlUpdate = "update iweb_messages set message='" + StrDiv +
"'where site_id ='" + mSiteID + "' and page_id ='" + ddlSitePage.SelectedValue + "'";
我从数据库中检索div并将其显示在文本框和标签中。
在标签中,div标签显示为:messagetoday21
但是在文本框中,div标记显示为:
<div STYLE='font-family: Times New Roman; font-size: 18pt; color: #CC3399'>today21</div>
我还需要在文本框中单独显示文本(与标签中显示的相同)。
请帮我提一些建议。
我使用以下代码在textbx和标签中显示DB中的文本:
String sqlMsg = "select message from iweb_messages where site_id='" + mSiteID + "' and page_id='" + ddlSitePage.SelectedValue + "'";
DataView dvMsg = dbLib.GetDateView(sqlMsg);
if (dvMsg.Table.Rows.Count > 0)
{
txtOutputMessage.Text = dvMsg.Table.Rows[0]["message"].ToString();
lblPreviewPane.Text = dvMsg.Table.Rows[0]["message"].ToString();
}
答案 0 :(得分:0)
我认为您的“文本框”是textarea
?如果是这样,您所看到的行为是预期的,因为您生成的HTML看起来像这样:
<textarea><div STYLE='font-family.....></div></textarea>
显示TEXTAREA的内容而不显示HTML。而标签(假设它是span
或另一个div
)将呈现HTML。
因此,作为快速解决方案,除了完整的lblPreviewPane.Text
之外,您还需要将<div>
保存到您的数据库中;然后在文本框中显示lblPreviewPane.Text
的值,而不是<div>
。
但我也会质疑在数据库中存储完整<div>
的智慧。如果提前确定字体属性 ,那么我认为您最好将这些属性值存储在表中,然后在显示时构建格式化的<div>
。