用ajax控件作的高级搜索
最近在學(xué)習(xí)ajax控件,感覺很好的,第一次使用,做的有點(diǎn)亂。把原代碼發(fā)來(lái)看看!
前臺(tái)代碼:
??? <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="/">童城首頁(yè)</a></li><li><a href="/Enterprise.aspx">企業(yè)大全</a></li>
??????????????? <li><a href="/Kucun.aspx">庫(kù)存二手</a></li>
??????????????? <li><a href="/service.aspx">服務(wù)類別</a></li>
??????????????? <li><a href="/buyer.aspx">童車采購(gòu)商</a></li>
??????????????? <li><a href="/news.aspx">童車資訊</a></li>
??????????????? <li><a href="/bbs/">童城社區(qū)</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">請(qǐng)輸入你要查詢的關(guān)鍵字</asp:TextBox>
??????????????????????? </td>
??????????????????????? <td width="100">
??????????????????????????? <label>
??????????????????????????????? <select name="select" id="select" οnchange="changeSearch()">
??????????????????????????????????? <option value="0">產(chǎn)品信息</option>
??????????????????????????????????? <option value="1">客戶信息</option>
??????????????????????????????????? <option value="2">新聞資訊</option>
??????????????????????????????????? <option value="3">經(jīng)營(yíng)案例</option>
??????????????????????????????????? <option value="4">企業(yè)大全</option>
??????????????????????????????? </select>
??????????????????????????? </label>
??????????????????????? </td>
??????????????????????? <td id="contentTD">
??????????????????????????? <div id="sear1">
??????????????????????????????? <span style="float: left;">產(chǎn)品類別:<select name="select" id="selectpros" οnchange="changeprotype()">
??????????????????????????????????? <option>請(qǐng)選擇產(chǎn)品類型</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>
??????????????????????????????????? 市場(chǎng)區(qū)域:<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">請(qǐng)選擇</asp:ListItem>
??????????????????????????????????? <asp:ListItem Value="1">代理信息</asp:ListItem>
??????????????????????????????????? <asp:ListItem Value="2">項(xiàng)目合作</asp:ListItem>
??????????????????????????????????? <asp:ListItem Value="3">服務(wù)信息</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">請(qǐng)選擇</asp:ListItem>
??????????????????????????????????? <asp:ListItem Value="1">庫(kù)存控制寶典</asp:ListItem>
??????????????????????????????????? <asp:ListItem Value="2">庫(kù)存控制案例</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;">
??????????????????????????????????? <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">
??????????????? 熱門關(guān)鍵字:
??????????????? <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">
??????????????????????????? 正在加載數(shù)據(jù),請(qǐng)稍候.....</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="對(duì)不起,未找到你想要的信息,請(qǐng)擴(kuò)大范圍重試!"></asp:Label></div>
??????????????? <script language="javascript" type="text/javascript">ShowKeyBycolor()</script>
??????????? </div>
??????? </div>
??? </div>
后臺(tái)代碼:
? 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();
??? //查詢產(chǎn)品
??? 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() == "請(qǐng)輸入你要查詢的關(guān)鍵字")
??????? {
??????????? 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() == "請(qǐng)輸入你要查詢的關(guān)鍵字")
??????? {
??????????? 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() == "請(qǐng)輸入你要查詢的關(guān)鍵字")
??????? {
??????????? 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();
??? }
??????
??? //查詢項(xiàng)目案例信息
??? 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() == "請(qǐng)輸入你要查詢的關(guān)鍵字")
??????? {
??????????? 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() == "請(qǐng)輸入你要查詢的關(guān)鍵字")
??????? {
??????????? 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;
??????? }?
??? }
我的編碼習(xí)慣不是很好,將就一下都。。
轉(zhuǎn)載于:https://www.cnblogs.com/Longkin/articles/1200250.html
總結(jié)
以上是生活随笔為你收集整理的用ajax控件作的高级搜索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。