html&js
<%@ Page Language="C#" MasterPageFile="~/SaleApp/MasterPage.Master" AutoEventWireup="true" CodeBehind="NewSelBreed.aspx.cs" Inherits="WebApp.SaleApp.BreedManage.NewSelBreed" Title="药品第二种搜索方式" %> <asp:Content ID="Content1" ContentPlaceHolderID="HeaderPlaceHolder1" runat="server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> <!--操作区--> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="26"> 当前位置:<a href="../Default.aspx">系统首页</a> > 品种管理 > 选择库存药品</td> <td align="right"> <a href="#"></a> </td> </tr> </table> <table width="100%" border="0" cellpadding="0" cellspacing="1" bgcolor="#a7c4db" class="p3"> <tr class="color3"> <td height="40" background="../images/ss_bg.gif" align="center" id="SearchPanel"> 名称 <input name="txtProcuctName" id="txtProductName" type="text" class="formbk8" runat="server" /> 主治 <input name="txtMajorFunction" id="txtMajorFunction" type="text" class="formbk8" runat="server" /> <select name="ddlFirstCategory" id="ddlFirstCategory" runat="server"> <option value="-1" selected="selected">大类全部</option> <option value="中药">中药</option> <option value="化学药品">化学药品</option> <option value="非药品">非药品</option> </select> <select name="ddlFunctionSys" id="ddlFunctionSys" runat="server" > <option value="-1" selected="selected">治疗系统</option> </select> <select id="ddlSecondCategory" name="ddlSecondCategory" runat="server" > <option value="-1" selected="selected">亚类全部</option> </select> <select id="ddlDosageform" name="ddlDosageform" runat="server" > <option value="-1" selected="selected">剂型全部</option> </select><br /> OTC <select id="ddlOTC" name="ddlOTC" runat="server" > <option value="-1" selected="selected">全部</option> <option value="0">否</option> <option value="甲">甲</option> <option value="乙">乙</option> </select> 独家品种 <select id="ddlExclusiveProduct" name="ddlExclusiveProduct" runat="server" > <option value="-1" selected="selected">全部</option> <option value="1">是</option> <option value="0">否</option> </select> 医保药物 <select id="ddlInsuranceProduct" name="ddlInsuranceProduct" runat="server" > <option value="-1" selected="selected">全部</option> <option value="1">是</option> <option value="0">否</option> </select> 中药保护 <select id="ddlProtectProduct" name="ddlProtectProduct" runat="server" > <option value="-1" selected="selected">全部</option> <option value="1">是</option> <option value="0">否</option> </select> 基本药物 <select id="ddlPrimaryProduct" name="ddlPrimaryProduct" runat="server" > <option value="-1" selected="selected">全部</option> <option value="1">是</option> <option value="0">否</option> </select> <input name="btnSearch" type="button" class="cxbtn" value="查询" onclick="Search()" style="cursor: hand" /> </td> </tr> </table> <table width="820" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="height: 1px"> </td> </tr> </table> <table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#b4cdf0" class="p3"> <tr class="color3"> <td align="center" bgcolor="#e8eefa" style=" 87px; height: 22px"> 产品名称</td> <td align="center" bgcolor="#e8eefa" style=" 91px; height: 22px"> 剂型</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 产品大类</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 治疗系统</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 亚类</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 独家产品</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 医保药品</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 基本药物</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> OTC</td> <td align="center" bgcolor="#e8eefa" style="height: 22px"> 中药保护品种</td> <td align="center" bgcolor="#e8eefa" style="height:22px"> 查看</td> </tr> <asp:Repeater ID="repData" runat="server"> <ItemTemplate> <tr class="p5"> <td height="20" align="left" bgcolor="white"> <%#Eval("ProductName")%> </td> <td height="20" align="left" bgcolor="white"> <%#Eval("Dosageform")%> </td> <td height="20" align="center" bgcolor="white"> <%#Eval("FirstCategory")%> </td> <td height="20" align="center" bgcolor="white"> <%#Eval("FunctionSys")%> </td> <td height="20" align="center" bgcolor="white"> <%#Eval("SecondCategory")%> </td> <td height="20" align="center" bgcolor="white"> <%#((Eval("ExclusiveProduct").ToString()=="1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="white"> <%#((Eval("InsuranceProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="white"> <%#((Eval("PrimaryProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="white"> <%#((Eval("OTC").ToString() == "0") ? "否" : Eval("OTC").ToString())%> </td> <td height="20" align="center" bgcolor="white"> <%#((Eval("ProtectProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="white" title="查看该药品的不同批号类型"> <span class="green" style="cursor: hand"> <input type="button" class="cxbtn" onclick="<%#Eval("LookScript") %>" value="查看" /> </span> </td> </tr> </ItemTemplate> <AlternatingItemTemplate> <tr class="p5"> <td height="20" align="left" bgcolor="#f9fbfe"> <%#Eval("ProductName")%> </td> <td height="20" align="left" bgcolor="#f9fbfe"> <%#Eval("Dosageform")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#Eval("FirstCategory")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#Eval("FunctionSys")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#Eval("SecondCategory")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#((Eval("ExclusiveProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#((Eval("InsuranceProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#((Eval("PrimaryProduct").ToString() == "1")?"是":"否")%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#((Eval("OTC").ToString() == "0") ? "否" : Eval("OTC").ToString())%> </td> <td height="20" align="center" bgcolor="#f9fbfe"> <%#((Eval("ProtectProduct").ToString() == "1")?"是":"否") %> </td> <td height="20" align="center" bgcolor="#f9fbfe" title="查看该药品的不同批号类型"> <span class="green" style="cursor: hand"> <input type="button" class="cxbtn" onclick="<%#Eval("LookScript") %>" value="查看" /> </span> </td> </tr> </AlternatingItemTemplate> </asp:Repeater> </table> <table width="100%" height="47" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="3%" align="center"> </td> <td width="97%" align="left"> <webdiyer:AspNetPager ID="AspNetPager1" runat="server" HorizontalAlign="Left" CustomInfoHTML='目前共有<font color="red">%RecordCount%</font>条记录 当前 <font color="red">%CurrentPageIndex%</font> / %PageCount%页' FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" PageIndexBoxType="TextBox" PrevPageText="上一页" ShowCustomInfoSection="Left" ShowPageIndex="False" ShowPageIndexBox="Always" TextBeforePageIndexBox="跳转到: " OnPageChanged="AspNetPager1_PageChanged" PageSize="10" PageIndexBoxClass="formbk8" SubmitButtonClass="cxbtn" NavigationToolTipTextFormatString="{0}" CssClass="a2" AlwaysShow="True" UrlPaging="true" SubmitButtonText="Go"> </webdiyer:AspNetPager> </td> </tr> </table> <script type="text/javascript" language="javascript" > var Go = function() { if(window.event.keyCode == '13') Search(); } var Search = function() { if($.trim($('#<%=txtProductName.ClientID %>').val()) == "" && $.trim($('#<%=txtMajorFunction.ClientID%>').val()) == "" && $('#<%=ddlFirstCategory.ClientID %>').val()== "-1") { alert('请至少输入一个查询条件\n1.药品名称\n2.主治功能\n3.大类'); return false; } if($.trim($('#<%=txtProductName.ClientID %>').val()).length < 2 && $.trim($('#<%=txtMajorFunction.ClientID %>').val()).length < 2 && $('#<%=ddlFirstCategory.ClientID%>').val() == "-1") { alert("请至少输入2个字符进行查询"); if($('#<%=txtProductName.ClientID %>').val().length < 2) { $("#<%=txtProductName.ClientID %>").focus(); return false; } if($("#<%=txtMajorFunction.ClientID %>").val().length < 2) { $("#<%=txtMajorFunction.ClientID %>").focus(); return false; } } else { var url = "../BreedManage/NewSelBreed.aspx?productname="+$.trim($('#<%=txtProductName.ClientID %>').val()) +"&majorfunction=" + $.trim($('#<%=txtMajorFunction.ClientID %>').val()) +"&firstcategory=" + $('#<%= ddlFirstCategory.ClientID %>').val() +"&functionsys=" + $('#<%= ddlFunctionSys.ClientID %>').val() +"&secondcategory=" +$('#<%= ddlSecondCategory.ClientID %>').val() +"&dosageform=" + $('#<%= ddlDosageform.ClientID %>').val() +"&otc="+ $('#<%= ddlOTC.ClientID %>').val() +"&exclusiveproduct=" +$('#<%=ddlExclusiveProduct.ClientID%>').val() +"&insuranceproduct=" + $('#<%=ddlInsuranceProduct.ClientID%>').val() +"&protectproduct=" + $('#<%=ddlProtectProduct.ClientID%>').val() +"&primaryproduct=" + $('#<%=ddlPrimaryProduct.ClientID%>').val() +"&page="+"<%=page %>"; location.href=url; } } var LookScript = function(productname,majorfunction,firstcategory,functionsys,secondcategory,dosageform,otc,exclusiveproduct,insuranceproduct,protectproduct,primaryproduct,drugname,page) { var url = "../BreedManage/SelBreed.aspx?productname="+productname +"&majorfunction=" + majorfunction +"&firstcategory=" + firstcategory +"&functionsys=" + functionsys +"&secondcategory=" +secondcategory +"&dosageform=" + dosageform +"&otc="+ otc +"&exclusiveproduct=" +exclusiveproduct +"&insuranceproduct=" + insuranceproduct +"&protectproduct=" + protectproduct +"&primaryproduct=" + primaryproduct +"&drugname="+drugname +"&page="+page; location.href=url; } $(function(){ $("#SearchPanel input[type='text']").bind('keydown',function(){ Go(); }); $("#SearchPanel select").keydown(function(){ Go(); }); $("#SearchPanel select:lt(2)").change(function(){ if($(this).val() != "-1"){ //getXmlJson($(this).val(),$(this).next("select"));//通过调用WebService GetXmlJsonToAshx($(this).val(),$(this).next("select"));//通过调用一般处理程序 } else { if(this.id == '<%=ddlFirstCategory.ClientID %>'){ $(this).next("select").val('-1').next("select").val('-1'); $(this).next("select").next("select").get(0).options.length = 1; }else{ $(this).next("select").val('-1'); } $(this).next("select").get(0).options.length = 1; } }); if("<%=FirstCategory %>" != "") { $("#<%=ddlFirstCategory.ClientID %>").change(); } }); //Jquery ajax调用WebService var getXmlJson = function(mess,selectName){ $.ajax({ type: "post", contentType:"application/json", url: "../TestServices.asmx/GetDrugsCategory", data: "{xmlname:'"+mess+"'}", datatype:"json", success: function(data) { var options = selectName.get(0).options; options.length = 1; if(selectName.get(0).id == '<%=ddlFunctionSys.ClientID %>') selectName.next("select").get(0).options.length = 1; var json = eval(data); if(!json) return; $.each(json,function(i,n){ options.add(new Option(n.name,n.name)); }); if($('#<%=ddlFunctionSys.ClientID %>').val() == "-1" && "<%=FunctionSys %>" != ""){ $('#<%=ddlFunctionSys.ClientID %>').val('<%=FunctionSys %>'); $('#<%=ddlFunctionSys.ClientID %>').change(); } if($('#<%=ddlSecondCategory.ClientID %>').val() == "-1" && "<%=SecondCategory %>" != ""){ $('#<%=ddlSecondCategory.ClientID %>').val('<%=SecondCategory %>'); $('#<%=ddlSecondCategory.ClientID %>').change(); } }, error: function(x, e) { alert("失败:"+x.responseText); } }); } //Jquery ajax调用ashx var GetXmlJsonToAshx = function(mess,selectName) { $.ajax({ type:"post", url: "../HandlerDrugsCategory.ashx?action=test", contentType:"application/x-www-form-urlencoded;charset=UTF-8", data: "xmlname="+mess,//提交表单,相当于HandlerDrugsCategory.ashx?xmlname=XXX //json格式接收数据 datatype:"json", success:function(data) { // 请求成功后回调函数 参数:服务器返回数据,数据格式. var options = selectName.get(0).options; options.length = 1; if(selectName.get(0).id == '<%=ddlFunctionSys.ClientID %>') selectName.next("select").get(0).options.length = 1; var json = eval(data); if(!json) return; $.each(json,function(i,n){ options.add(new Option(n.name,n.name)); }); if($('#<%=ddlFunctionSys.ClientID %>').val() == "-1" && "<%=FunctionSys %>" != ""){ $('#<%=ddlFunctionSys.ClientID %>').val('<%=FunctionSys %>'); $('#<%=ddlFunctionSys.ClientID %>').change(); } if($('#<%=ddlSecondCategory.ClientID %>').val() == "-1" && "<%=SecondCategory %>" != ""){ $('#<%=ddlSecondCategory.ClientID %>').val('<%=SecondCategory %>'); $('#<%=ddlSecondCategory.ClientID %>').change(); } }, error: function(x, e) { alert("失败:"+x.responseText); } }); } </script> </asp:Content>
ashx:
using System; using System.Data; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.Xml; using System.Web.SessionState; using System.Text; namespace WebApp.SaleApp { /// <summary> /// $codebehindclassname$ 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class HandlerDrugsCategory : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "application/json"; //context.Response.Charset = "gb2312";//utf-8 string action = context.Request.Params["action"].ToString(); if (action == "test") { //string strJson = GetDrugsCategory(HttpContext.Current.Server.UrlDecode(context.Request.Params["xmlname"].ToString())); string strJson = GetDrugsCategory(HttpUtility.UrlDecode(context.Request.Params["xmlname"].ToString(), Encoding.GetEncoding("utf-8"))); context.Response.Write(strJson); context.Response.End(); } } /// <summary> /// 业务员查询药品分类 /// </summary> /// <param name="xmlname">查询节点名称</param> /// <returns></returns> public string GetDrugsCategory(string xmlname) { XmlDocument xd = new XmlDocument(); xd.Load(HttpContext.Current.Server.MapPath("./XmlData/YwHyDrugCategory.xml")); XmlNode xnode = xd.DocumentElement; XmlNode node = null; GetXMLNode(xnode, ref node,xmlname); return GetXmlJson(node); } /// <summary> /// 将XML解析成数据格式为Json的数据供JS使用 /// 返回json数据 /// </summary> /// <param name="node">XML节点</param> /// <returns></returns> private string GetXmlJson(XmlNode node) { try { System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (node != null) { sb.Append("["); foreach (XmlNode xnode in node.ChildNodes) { sb.Append("{\"name\":\"" + xnode.Attributes["name"].Value + "\"},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]"); } return sb.ToString(); } catch (Exception ex) { throw new Exception(ex.Message); } } /// <summary> /// 递归调用解析XML /// </summary> /// <param name="xnode">XML根节点</param> /// <param name="node">返回XML节点</param> /// <param name="message">查询XML节点名称</param> private void GetXMLNode(XmlNode xnode, ref XmlNode node, string message) { try { if (xnode.HasChildNodes) { foreach (XmlNode var in xnode.ChildNodes) { string name = var.Attributes["name"].Value; if (name == message) { node = var; return; } GetXMLNode(var, ref node, message); } } } catch (Exception ex) { throw new Exception(ex.Message); } } public bool IsReusable { get { return false; } } } }
asmx:
using System; using System.Data; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; using System.ComponentModel; using System.Web.Script.Services; using System.Xml; namespace WebApp.SaleApp { /// <summary> /// TestServices 的摘要说明 /// 业务员第二种查询方式中药片分类级联下拉三级列表 /// CnHney.wl /// 2011-03-28 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] [ScriptService] public class TestServices : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } /// <summary> /// 业务员查询药品分类 /// </summary> /// <param name="xmlname">查询节点名称</param> /// <returns></returns> [WebMethod(EnableSession=true)] [ScriptMethod] public string GetDrugsCategory(string xmlname) { XmlDocument xd = new XmlDocument(); xd.Load(Server.MapPath("./XmlData/YwHyDrugCategory.xml")); XmlNode xnode = xd.DocumentElement; XmlNode node = null; GetXMLNode(xnode, ref node, xmlname); return GetXmlJson(node); } /// <summary> /// 将XML解析成数据格式为Json的数据供JS使用 /// 返回json数据 /// </summary> /// <param name="node">XML节点</param> /// <returns></returns> private string GetXmlJson(XmlNode node) { try { System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (node != null) { sb.Append("["); foreach (XmlNode xnode in node.ChildNodes) { sb.Append("{'name':'"+xnode.Attributes["name"].Value +"'},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]"); } return sb.ToString(); } catch (Exception ex) { throw new Exception(ex.Message); } } /// <summary> /// 递归调用解析XML /// </summary> /// <param name="xnode">XML根节点</param> /// <param name="node">返回XML节点</param> /// <param name="message">查询XML节点名称</param> private void GetXMLNode(XmlNode xnode, ref XmlNode node, string message) { try { if(xnode.HasChildNodes) { foreach (XmlNode var in xnode.ChildNodes) { string name = var.Attributes["name"].Value; if (name == message) { node = var; return; } GetXMLNode(var, ref node, message); } } } catch (Exception ex) { throw new Exception(ex.Message); } } } }
仅供参考,欢迎拍砖!