我创建了一个简单的Web服务,用于ajax autocompleteextender控件。它很棒,我差不多完成了,只有一件事困扰着我。当数据库中存在使用html字符的数据时,输出数据对用户不友好。例如“测试;放大器测试”。因此,当您开始在搜索框中键入“Test”时,显示的结果之一是“Test; amp Test”。我想把它显示为Test&无需更改表中的数据即可进行测试。我不确定该怎么做。
我曾尝试对字符串项进行htmlencode,但总是会出现构建错误。
提前感谢您的帮助!
以下是我的网络服务的内容:
[WebMethod]
public string[] GetActiveProducts(string prefixText)
{
ddconnection = new SqlConnection("Data Source=***;Initial Catalog=***;Connect Timeout=200;Persist Security Info=True;User ID=sa;Password=***;");
ddconnection.Open();
int count = 10;
string sql = "SELECT TOP 10 title FROM Product WHERE active = '1' AND title LIKE @prefixText";
SqlDataAdapter da = new SqlDataAdapter(sql, ddconnection);
da.SelectCommand.Parameters.Add("@prefixText", SqlDbType.VarChar, 60).Value = "%" + prefixText + "%";
DataTable dt = new DataTable();
da.Fill(dt);
string[] items = new string[dt.Rows.Count];
int i = 0;
foreach (DataRow dr in dt.Rows)
{
items.SetValue(dr["title"].ToString(),i);
i++;
}
return items;
}
行为举例。 (抱歉要模糊)
答案 0 :(得分:0)
Items
是string
的数组,HtmlEncode
需要string
。这就是你得到构建错误的原因。如果您单独编码单个项目,它是否可以解决您的问题?
编辑:如果你做items.SetValue(Server.HtmlEncode(dr["title"].ToString()),i)
我想你至少应该让编码工作