用ajax控件作的高级搜索

最近在学习ajax控件,感觉很好的,第一次使用,做的有点乱。把原代码发来看看!

前台代码:

    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true">
    </asp:ScriptManager>
    <div style="margin: 0 auto; width: 954px; clear: both;">
        <div class="menuy">
            <ul>
                <li><a href="/">童城首页</a></li><li><a href="/Enterprise.aspx">企业大全</a></li>
                <li><a href="/Kucun.aspx">库存二手</a></li>
                <li><a href="/service.aspx">服务类别</a></li>
                <li><a href="/buyer.aspx">童车采购商</a></li>
                <li><a href="/news.aspx">童车资讯</a></li>
                <li><a href="/bbs/">童城社区</a></li>
            </ul>
        </div>
        <div class="blank2">
        </div>
        <div class="topBg bor">
            <div class="divsearch">
                <table width="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                        <td width="200">
                            <asp:TextBox ID="txtKey" runat="server" CssClass="inputcss">请输入你要查询的关键字</asp:TextBox>
                        </td>
                        <td width="100">
                            <label>
                                <select name="select" id="select" onchange="changeSearch()">
                                    <option value="0">产品信息</option>
                                    <option value="1">客户信息</option>
                                    <option value="2">新闻资讯</option>
                                    <option value="3">经营案例</option>
                                    <option value="4">企业大全</option>
                                </select>
                            </label>
                        </td>
                        <td id="contentTD">
                            <div id="sear1">
                                <span style="float: left;">产品类别:<select name="select" id="selectpros" onchange="changeprotype()">
                                    <option>请选择产品类型</option>
                                    <option value="0">童车系列</option>
                                    <option value="1">童车配件系列</option>
                                </select></span> <span style="float: left; display: none;" id="spBuggle">
                                    <asp:DropDownList ID="bugglelist" runat="server">
                                    </asp:DropDownList>
                                    市场区域:<asp:DropDownList ID="continentlist" runat="server">
                                    </asp:DropDownList>
                                </span><span style="float: left; display: none;" id="spFittings">
                                    <asp:DropDownList ID="fittingslist" runat="server">
                                    </asp:DropDownList>
                                </span><span>
                                    <asp:Button ID="butn_sPros" runat="server" Text=" 搜 索 " OnClick="butn_sPros_Click" /></span></div>
                            <div id="sear2">
                                信息类型:<asp:DropDownList ID="infotype" runat="server">
                                    <asp:ListItem Value="0">请选择</asp:ListItem>
                                    <asp:ListItem Value="1">代理信息</asp:ListItem>
                                    <asp:ListItem Value="2">项目合作</asp:ListItem>
                                    <asp:ListItem Value="3">服务信息</asp:ListItem>
                                </asp:DropDownList>
                                <asp:Button ID="butn_skehu" runat="server" Text=" 搜 索 " OnClick="butn_skehu_Click" /></div>
                            <div id="sear3">
                                资讯类别:<asp:DropDownList ID="aritcleCateslist" runat="server">
                                </asp:DropDownList>
                                <asp:Button ID="butn_snews" runat="server" Text=" 搜 索 " OnClick="butn_snews_Click" /></div>
                            <div id="sear4">
                                案例类别:<asp:DropDownList ID="caseList" runat="server">
                                    <asp:ListItem Value="0">请选择</asp:ListItem>
                                    <asp:ListItem Value="1">库存控制宝典</asp:ListItem>
                                    <asp:ListItem Value="2">库存控制案例</asp:ListItem>
                                </asp:DropDownList>
                                <asp:Button ID="butn_scase" runat="server" Text=" 搜 索 " OnClick="butn_scase_Click" /></div>
                            <div id="sear5">
                                <span style="float: left;">
                                    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                                        <ContentTemplate>
                                            <asp:DropDownList runat="server" ID="StatList">
                                                <asp:ListItem Value="0">省份</asp:ListItem>
                                            </asp:DropDownList>
                                            <asp:DropDownList runat="server" ID="CityList">
                                                <asp:ListItem Value="0">城市</asp:ListItem>
                                            </asp:DropDownList>
                                            <asp:DropDownList ID="lstWorkTypes" runat="server">
                                            </asp:DropDownList>
                                        </ContentTemplate>
                                        <Triggers>
                                            <asp:AsyncPostBackTrigger ControlID="StatList" EventName="" />
                                        </Triggers>
                                    </asp:UpdatePanel>
                                </span><span style="float: left;">&nbsp;
                                    <asp:Button ID="butn_shops" runat="server" Text=" 搜 索 " OnClick="butn_shops_Click" /></span>
                            </div>
                        </td>
                    </tr>
                </table>

                <script language="javascript">
                    function changeSearch()
                    {
                      var obj = document.getElementById("select");
                      var sValue=obj.options[obj.options.selectedIndex].value;
                      for(var i=0;i<obj.options.length;i++)
                      {
                         document.getElementById("contentTD").childNodes[i].style.display="none";
                         if(obj.options[i].selected)
                         {
                            document.getElementById("sear"+(i+1)).style.display="block";
                         }                        
                      }                    
                    }
                    function $(id)
                    {
                     return document.getElementById(id);
                    }
                   
                    function changeprotype()
                    {
                       var obj = document.getElementById("selectpros");
                       var sValue=obj.options[obj.options.selectedIndex].value;
                       if(sValue=="0"){                                             
                         document.getElementById("spBuggle").style.display="block";
                         $("fittingslist").options.selectedIndex=0;
                         }                     
                       else                      
                         document.getElementById("spBuggle").style.display="none";                      
                       if(sValue=="1"){                                             
                         document.getElementById("spFittings").style.display="block";   
                             $("bugglelist").options.selectedIndex=0;
                             $("continentlist").options.selectedIndex=0;
                         }              
                       else                      
                         document.getElementById("spFittings").style.display="none";                      
                    }
                </script>

            </div>
            <div class="lan_hot">
                热门关键字:
                <uc3:HotKeywordsModule ID="HotKeywordsModule1" runat="server" />
            </div>
        </div>
        <div class="bank">
        </div>
        <div class="ls_bg bor2 ">
            <div class="lan_hot lst_conn" id="connList">
                <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                    <ProgressTemplate>
                        <div style="text-align: center; border: 1px solid #DAA516; padding-top: 6px; padding-bottom: 3px;
                            margin-bottom: 10px;" align="center">
                            正在加载数据,请稍候.....</div>
                    </ProgressTemplate>
                </asp:UpdateProgress>
                <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                    <ContentTemplate>
                        <asp:Repeater ID="rptResults" runat="server">
                            <HeaderTemplate>
                                <ul>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <li>
                                    <asp:Label runat="server" ID="lblPro"><a href='<%#string.Format("/{0}/{1}{2:yyyyMMdd}-{3}.html", Folder, HtmlType,Eval(DateType), Eval("PKID")) %>'target="_blank"><%#Eval(text)%></a></asp:Label>
                                    <asp:Label runat="server" ID="lblshop" Visible="false"><a href='<%#"/ShopInfo.aspx?id="+Eval("PKID") %>'target="_blank"><%#Eval(text)%></a>      </asp:Label>
                                </li>
                            </ItemTemplate>
                            <FooterTemplate>
                                </ul></FooterTemplate>
                        </asp:Repeater>
                    </ContentTemplate>
                    <Triggers>
                        <asp:AsyncPostBackTrigger ControlID="butn_snews" EventName="Click" />
                        <asp:AsyncPostBackTrigger ControlID="butn_scase" EventName="Click" />
                        <asp:AsyncPostBackTrigger ControlID="butn_sPros" EventName="Click" />
                        <asp:AsyncPostBackTrigger ControlID="butn_skehu" EventName="Click" />
                        <asp:AsyncPostBackTrigger ControlID="butn_shops" EventName="Click" />
                    </Triggers>
                </asp:UpdatePanel>
                <div align="center" style="margin-top: 10px;">
                    <asp:Label ID="lblNoList" Visible="false" runat="server" Text="对不起,未找到你想要的信息,请扩大范围重试!"></asp:Label></div>

                <script language="javascript" type="text/javascript">ShowKeyBycolor()</script>

            </div>
        </div>
    </div>




后台代码:

  protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Display();
            LoadData();
            butn_snews.Attributes.Add("onclick", "buttonClick()");
            butn_skehu.Attributes.Add("onclick", "buttonClick()");
            butn_scase.Attributes.Add("onclick", "buttonClick()");
            butn_sPros.Attributes.Add("onclick", "buttonClick()");
            butn_shops.Attributes.Add("onclick", "buttonClick()");
            txtKey.Attributes.Add("onfocus", "keyFoucs()");
            txtKey.Attributes.Add("onblur","keyBlur()");
        }
    }
    public string text = "";//需要邦定的字符串字段
    public string Folder = "";
    public string HtmlType = "";
    public string DateType = "";
    public string HrefText = "";

    void Display()
    {
        if (Request.QueryString["key"] != null && Request.QueryString["key"] != "")
        {
            Folder = "ProductsHtml";
            HtmlType = "product";
            text = "ProductName";
            DateType = "PublicDate";
            string keywords = Server.UrlDecode(Request.QueryString["key"]);
            DataSet ds = new DataSet();
            DataTable td1 = DataAccess.ExecuteDataSet(string.Format("select * from productsview where productname like '%{0}%' or Keywords like '%{0}%'",keywords)).Tables[0];
            //ds.Tables.Add(td1);
            rptResults.DataSource = td1;
            rptResults.DataBind();           
        }
    }

    void LoadData()
    {
        Common.BindDropdwon(bugglelist,"select * from buggle");
        Common.BindDropdwon(continentlist,"select * from Continent");
        CFittings.BindFittings(fittingslist);
        Common.BindDropdwon(aritcleCateslist, "select * from articlecategories");
        Common.BindDropdwon(lstWorkTypes, "select * from shoptype");
    }

   private StringBuilder sqlstr = new StringBuilder();

    //查询产品
    protected void butn_sPros_Click(object sender, EventArgs e)
    {
        //AsyncPostBackTrigger asyTriger = new AsyncPostBackTrigger();
        //asyTriger.ControlID = "butn_sPros";
        //asyTriger.EventName = "Click";
        //UpdatePanel1.Triggers.Add(asyTriger);
        //System.Threading.Thread.Sleep(3000);
        Folder = "ProductsHtml";
        HtmlType = "product";
        DateType = "PublicDate";
        text = "ProductName";
       
        sqlstr.AppendFormat("select * from Products  where 1 = 1 ");
        if (txtKey.Text.Trim() == "请输入你要查询的关键字")
        {
            return;
        }
        if (txtKey.Text.Trim() != "")
        sqlstr.AppendFormat(" And Contains(ProductName,'{0}')", txtKey.Text.Trim());

        if (bugglelist.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And BuggleID = {0}",bugglelist.SelectedValue);
            if (continentlist.SelectedIndex > 0)
            {
                CContinent cont = new CContinent(int.Parse(continentlist.SelectedValue));
                sqlstr.AppendFormat(" And ContinentList like '%{0}%'", continentlist.SelectedItem.Text);
            }
        }
        if (fittingslist.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And FittingsType = {0} ", fittingslist.SelectedValue);
        }
        //Response.Write(sqlstr.ToString());
        rptResults.DataSource = DataAccess.ExecuteDataSet(sqlstr.ToString());
        rptResults.DataBind();

    }

    //查询客户提供的信息
    protected void butn_skehu_Click(object sender, EventArgs e)
    {
        text = "Title";
        Folder = "PubInfohtml";
        HtmlType = "publicinfo";
        DateType = "PublicDate";

        sqlstr.AppendFormat("select * from PublicInfo where 1 = 1");
        if (txtKey.Text.Trim() == "请输入你要查询的关键字")
        {
            return;
        }
        if (txtKey.Text.Trim() != "")
        sqlstr.AppendFormat(" And Contains(Title,'{0}') ", txtKey.Text.Trim());

        if (infotype.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And InfoType ={0} ",infotype.SelectedValue);
        }
        rptResults.DataSource = DataAccess.ExecuteDataSet(sqlstr.ToString());
        rptResults.DataBind();

    }

    //查询新闻资讯
    protected void butn_snews_Click(object sender, EventArgs e)
    {      
        //rptResults.DataSource = null;
        //rptResults.DataBind();
        //rptResults.Dispose();        
        text = "Title";
        Folder = "newshtml";
        HtmlType = "news";
        DateType = "PublicDate";

        sqlstr.AppendFormat(" select * from Articles where 1 = 1 ");
        if (txtKey.Text.Trim() == "请输入你要查询的关键字")
        {
            return;
        }
        if (txtKey.Text.Trim() != "")
        sqlstr.AppendFormat(" And Contains(Title,'{0}')", txtKey.Text.Trim());
        if (aritcleCateslist.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And ArticleCategoryID = {0}",aritcleCateslist.SelectedValue);
        }       
        rptResults.DataSource = DataAccess.ExecuteDataSet(sqlstr.ToString());
        rptResults.DataBind();
    }
      

    //查询项目案例信息
    protected void butn_scase_Click(object sender, EventArgs e)
    {
        //System.Threading.Thread.Sleep(3000);
        //AsyncPostBackTrigger asy = new AsyncPostBackTrigger();
        //asy.ControlID = "butn_scase";
        //asy.EventName = "Click";
        //UpdatePanel1.Triggers.Add(asy);

        //this.ScriptManager1.RegisterAsyncPostBackControl(this.butn_scase);

        text="Title";
        Folder = "newshtml";
        HtmlType = "casenews";
        DateType = "PublicDate";
        //TemplateBuilder rptTemp = new TemplateBuilder();
        //rptTemp.AppendLiteralString("<li><%# DataBinder.Eval(Container.DataItem,\"CaseTypeName\")%></li>");
        //rptResults.ItemTemplate = rptTemp;

        //rptResults.ItemDataBound += new RepeaterItemEventHandler(rptResults_ItemDataBound);
        //rptResults.ItemCreated += new System.Web.UI.WebControls.RepeaterItemEventHandler(rptResults_ItemCreated);  
        sqlstr.AppendFormat("select * from Casefor where 1 = 1 ");
        if (txtKey.Text.Trim() == "请输入你要查询的关键字")
        {
            return;
        }
        if(txtKey.Text.Trim()!="")
        sqlstr.AppendFormat(" And Contains(Title,'{0}') ", txtKey.Text.Trim());
        if (caseList.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And CaseType = {0}",caseList.SelectedValue);
        }
        rptResults.DataSource = DataAccess.ExecuteDataSet(sqlstr.ToString());
        rptResults.DataBind();
    }

    //查询商铺信息
    protected void butn_shops_Click(object sender, EventArgs e)
    {
        text = "ShopName";
        DateType = "RegistTime";    
        sqlstr.AppendFormat("select * from Shops where 1= 1 ");
        if (txtKey.Text.Trim() == "请输入你要查询的关键字")
        {
            return;
        }
        if (txtKey.Text.Trim() != "")
            sqlstr.AppendFormat(" And contains(shopname,'{0}') ", txtKey.Text.Trim());
        if (lstWorkTypes.SelectedIndex > 0)
        {
            sqlstr.AppendFormat(" And shopType = {0} ",lstWorkTypes.SelectedValue);
        }
        rptResults.DataSource = DataAccess.ExecuteDataSet(sqlstr.ToString());
        rptResults.DataBind();

        for (int i = 0; i < rptResults.Items.Count; i++)
        {
            Label asplable = (Label)rptResults.Items[i].FindControl("lblshop");
            Label prolable = (Label)rptResults.Items[i].FindControl("lblPro");
            if (asplable == null) return;
            asplable.Visible = true;
            prolable.Visible = false;
        } 
    }

有些代码是自己用的代码库,可能不能用,评论一下就好了!
我的编码习惯不是很好,将就一下都。。
posted @ 2008-05-16 11:42  Longkin  阅读(520)  评论(0编辑  收藏  举报