旧山竹 - 2013/12/21 15:02:55
我做了一下几个操作:
1.复制了文章资讯表单的搜索代码
2.将代码复制到网站对应模块,能够正确显示
3.不需要任何条件时,搜索出所有文章资讯类别的文字,也能够通过分类返回搜索结果,输入完整的标题可以匹配。但是,标题模糊搜索功能失效,无法进行模糊匹配~求教高人怎么解决?
PS:文章资讯的表单中已经设置了标题项作为模糊匹配,没有修改默认的搜索模型。代码如下:
<ul class="article">
<%
string Line;
DataTable dt=Get_Data();
DataRow dr;
if(dt.Rows.Count>0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
dr=dt.Rows[i];
if(((i+1)%5)==0)
{
Line="<li class='line'></line>";
}
else
{
Line="";
}
%>
<li class="search"><span class="title">
<a href="<%=Detail_Url(dr)%>" target="_blank" title="<%=Server.HtmlEncode(dr["title"].ToString())%>" style="<%=dr["pa_style"]%>"><%=SubStr(dr["title"].ToString(),100,true)%></a></span>
<span class="date"><%=((DateTime)dr["thedate"]).ToString("yyyy-MM-dd")%></span>
</li><%=Line%>
<%
}
}
else
{
Response.Write("无匹配的记录,请更换关键字重新搜索!");
}
%>
</ul>
fkcn - 2014/2/24 15:22:28
这个问题就没有人能够解决吗?开发这个程序的老大们?说话啊!!
xiyou - 2014/2/24 15:39:44
到字段管理里面去把标题设置为模糊搜索
然后重新去获取搜索表单粘贴替换掉旧的表单代码
fkcn - 2014/2/24 16:27:02
OK了,谢谢xiyou老大!!谁如果还遇到此类问题,可参考楼上解决办法。不过感到奇怪的是,原来那块就是设置的“模糊“啊!呵呵~反正多折腾几次好了就好。
fkcn - 2014/2/24 16:33:54
补充一下,原来以为xiyou的办法是见效的,后来才发现还是不行!!!!
之所以解决了此问题是由于我把”产品搜索模型“里的代码粘到了”文章资讯搜索模型“里:
具体办法是:
“表单模型管理”————自定义表单————文章资讯的“功能模型”---文章模型---模型设置,粘贴如下代码(从产品搜索模型代码修改而来):
<script language="C#" Runat="server">
private string SqlFormat(string str)
{
if(str=="" || str==null)
{
return "";
}
str=str.Replace("_","[_]");
str=str.Replace("%","[%]");
str=str.Replace("'","''");
str=str.Replace("\"","\"");
if(str.Length>20)
{
str=str.Substring(0,20); //截取前20个字符
}
return Server.HtmlEncode(str);
}
</script>
<script type="text/javascript">
function c_keyword()
{
if($("title").value=="")
{
alert("请输入关键词!");
$("title").focus();
return false;
}
}
</script>
<ul class="article">
<%
string kw=SqlFormat(Request.QueryString["title"]);//一定要SqlFormat格式化,否则容易被sql注入
Sql_Condition="and (title like '%"+kw+"%' or content like '%"+kw+"%')";//构造搜索条件
DataTable dt=Get_Data();
DataRow dr;
if(dt.Rows.Count>0)
{
%>
<li style="clear:both;float:none;height:30px;display:block;text-align:left;padding:0 0 0 0">查询到<%=RecordCount%>条有关记录。</li>
<%
for(int i=0;i<dt.Rows.Count;i++)
{
dr=dt.Rows;
%>
<li>
<span class="title"><a href="<%=Detail_Url(dr)%>" target="_blank" title="<%=Server.HtmlEncode(dr["title"].ToString())%>"><%=SubStr(dr["title"].ToString(),50,true)%></a></span>
</li>
<%
}
}
else
{
Response.Write("无匹配的记录,请更换关键字重新搜索!");
}
%>
</ul>
fkcn - 2014/2/24 16:36:42
这样不仅可以搜到标题还可以搜到内容里匹配的文字,供大家参考。我试着看了其它的程序模板,都没有问题啊,比如政府那个绿色的模板,用原来的可以进行模糊查询的。