DANHAND

图书馆系统

交流群: 208922879
技术QQ: 1379962711

lib分类

推荐lib

asp_net_2.0选择按作者,按标题搜索的实现

选择按作者,按标题搜索的实现
 
刚修改了一下程序,实现了下拉列表选择搜索类型。给我们新手们分享一下(老手勿看)
1、首先要说明的是,最新asp.net 版本中已经可以实现全站搜索。你可能需要修改一下 search模块中的config.jtbc文件,把你要搜索的模块名称加入列表中,把不需要的删除,如:
    <item>
    <name><![CDATA[nsearch]]></name>    <chinese><![CDATA[articles,downloads,myshop]]></chinese>    </item>
2、修改搜索表单。我这里因为已经添加了作者字段(author),因此需要“按作者”搜索。修改后的搜索表单如下(灰色部分是新加入的):

<form method="get" action="/search">
<td><input type="text" name="keyword" class="text" size="20" /></td>
<td><select name="Select"><option selected="selected" value="topic">按标题</option><option value="author">按作者</option></select></td>
<td><input type="submit" value="搜索" class="button" /></td>
</form>
3、修改\\search\\common\\codefile\\default.cs文件的  private string Module_List()函数,其中关键几处:
(1)在函数开始处比如string tmpstr = "";行下方增加二行:

    string serchtype = "";
    serchtype ="un_"+ request.querystring("select");  //定义了一个变量searchtype并取得用户的选择类型值
(2)修改这一行:      if (!cls.isEmpty(tdatabase)) tsqlstr += "select " + cls.cfnames(tfpre, "id") + " as un_id," + cls.cfnames(tfpre, "author") + " as un_author,"  +cls.cfnames(tfpre, "topic") + " as un_topic," + cls.cfnames(tfpre, "time") + " as un_time,'" + tnGenreAryString + "' as un_genre from " + tdatabase + " where " + cls.cfnames(tfpre, "hidden") + "=0 and " + cls.cfnames(tfpre, "lng") + "=" + cls.getNum(config.nlng, 0) + "  union all ";注意其中红色部分是新加入的字段名。
(3)修改此行:    tsqlstr +=") t0 where  un_topic  like '%" + tkeyword + "%'";
改为:    tsqlstr +=") t0 where "+serchtype+" like '%" + tkeyword + "%'";//把查询条件变量转入字符串中。
4、OK了。