zoukankan      html  css  js  c++  java
  • WebService 的常见问题

    首先是 写 WebMethod

    WebService.cs
       /// <summary>
        /// 按分类和关键字查询商品
        /// </summary>
        /// <param name="categoryId"></param>
        /// <param name="keyword"></param>
        /// <returns></returns>
    
        [WebMethod]
        public DataTable GetGoodsByCategoryKey(string categoryId, string keyword)
        {
            string strWhere = "1=1";
            if (categoryId != "0")
            {
                string sonCategoty = Common.GetSonCategory(Util.GetInt(categoryId), "") + categoryId;
                strWhere += " AND CategoryId IN(" + sonCategoty + ")";
            }
            if (!Util.IsEmpty(keyword))
            {
                strWhere += " AND GoodsNO LIKE '%" + keyword + "%' or GoodsName LIKE '%" + keyword + "%'";
            }
          
            DataSet ds = new SQLServerDAL.A_GoodsInfo().GetDataSet(null, strWhere.ToString(), "SortIndex ASC");
            DataTable table = null;
            if (ds.Tables[0].Rows.Count > 0)
            {
                //table = Detect.ListToDataTable(PublicGoodsList(strWhere.ToString(), ds.Tables[0]));
                table = ds.Tables[0];
            }
            //Detect.GetDistinctTable(ds.Tables[0], "SpareInt2");
    
            return table;
        }
    
    

    不要忘了引用:using Microsoft.Web.Script.Services;

    然后再aspx 上写入

    1   <asp:ScriptManager ID="ScriptManager1" runat="server">
    2         <Services>
    3             <asp:ServiceReference Path="http://www.cnblogs.com/WebService.asmx" />
    4         </Services>
    5     </asp:ScriptManager>

    然后js 就可以调用了:

    方法一:

     1 function searchItem()
     2         {
     3           var cat=document.getElementById('DDL_Seach_Category');
     4           var catId=cat.options[cat.selectedIndex].value;
     5           var keyword  = document.forms['theForm'].elements['keyword'].value;
     6           WebService.GetGoodsByCategoryKey(catId,keyword,
     7            function(result)
     8            {
     9               var sel = document.forms['theForm'].elements['result'];
    10               sel.length = 0;
    11 
    12               /* 创建 options */
    13               if(result!=null){
    14                 var Text = result.dataArray.substring(0, result.dataArray.length - 1);
    15                 var Table = eval(Text);  
    16   
    17                 for (x = 0; x < Table.length; x++) {
    18                     var Row = Table[x];
    19                     var option = document.createElement("option");
    20                    option.text =Row.GoodsName;
    21                    option.value = Row.GoodsId;
    22                     if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) 
    23                         sel.add(option);
    24                     else 
    25                         sel.add(option, null);
    26                 }
    27                 }
    28                 else{
    29                     alert("没有该类商品!");
    30                 }
    31             })
    32         }

    方法一 有时会出现 返回的 result 中 没有 dataArray 的问题,导致数据显示不出来(据说 是调用的的一个库的问题)

    方法二:

    function searchItem() {
                    var cat = document.getElementById('DDL_Seach_Category');
                    var catId = cat.options[cat.selectedIndex].value;
                    var keyword = document.forms['theForm'].elements['keyword'].value;
                    WebService.GetGoodsByCategoryKey(catId, keyword, function (result) {
                        var sel = document.forms['theForm'].elements['result'];
                        sel.length = 0;
    
                        /* 创建 options */
                        if (result != null) {
                            for (x = 0; x < result.rows.length; x++) {
                                var option = document.createElement("option");
                                option.text = result.rows[x].GoodsName;
                                option.value = result.rows[x].GoodsId;
                                if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1)
                                    sel.add(option);
                                else
                                    sel.add(option, null);
                            }
                        }
                        else {
                            alert("没有该类商品!");
                        }
                    })
                }

    换成方法二 就解决了,如果哪位也遇到这种情况!麻烦给我说下为什么?

  • 相关阅读:
    Java字符编码问题
    Andrew Ng机器学习公开课笔记 -- 支持向量机
    Andrew Ng机器学习公开课笔记 -- 朴素贝叶斯算法
    Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms
    Andrew Ng机器学习公开课笔记 -- Generalized Linear Models
    技术书单整理
    Andrew Ng机器学习公开课笔记 -- Logistic Regression
    Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
    统计学习方法笔记 -- 决策树
    POJ1037 A decorative fence 【动态规划】
  • 原文地址:https://www.cnblogs.com/zhaozhengyan/p/2576281.html
Copyright © 2011-2022 走看看