2016-07-16 62 views
0

我试图通过web方法和jQuery功能,所以我尝试这对网格视图显示的数据。我试图显示GridView控件时,从下拉列表中选择用户价值以及日历选择日期输入阵列较长

$(function() { 
       $('[ID*=search_data]').on('click', function() { 
        var fromdate = $('[ID*=fromdate]').val(); 
        var todate = $('[ID*=todate]').val(); 
        var regiondrop = $('[ID*=regiondrop] option:selected')[0].value; 
        var GridView1 = $('[ID*=GridView1]'); 
        var obj = {}; 
        obj.fromdate = fromdate; 
        obj.todate = todate; 
        obj.regiondrop = regiondrop; 
       Getdataa(obj); 
       }); 
     }); 
     function Getdataa(obj) { 
      //alert('1'); 
      $.ajax({ 
       type: "POST", 
       url: "WebForm1.aspx/search_data", 
       data: "{'fromdate':'" + obj.fromdate + "','todate':'" + obj.todate + "','regiondrop':'" + obj.regiondrop + "'}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: true, 
       cache: false, 
       success: function (result) { 
        $("#GridView1").empty(); 
        if (result.d.length > 0) { 
         $("#GridView1").append(
     "<tr><th>ID</th><th>OName</th><th>Reg No</th><th>Speed</th></tr>"); 

         for (var i = 0; i < result.d.length; i++) { 
          $("#GridView1").append("<tr><td>" + 
       result.d[i].ID+ "</td> <td>" + 
       result.d[i].OName + "</td> <td>" + 
       result.d[i].Reg No+ "</td> <td>" + 
       result.d[i].Speed+ "</td></tr>"); 
         } 
        } 
        else { 
         $("#GridView1").hide(); 
         $("#Label1").text("No Data"); 
        } 
       }, 
       error: function (error) { 
        alert("error"); 

       } 
      }); 
     } 

的WebMethod

[WebMethod] 
    public static DataTable search_data(DateTime fromdate, DateTime todate, string regiondrop) 
    { 
     try 
     { 
      T1 ts = new T1(); 
      var dq = (from vv in ts.tblVe 
         join rv in ts.tblRe on vv.ID equals rv.ID 
         join re in ts.tblReg on rv.RID equals re.RID 
         where 
         re.Region == regiondrop 
         && re.StartDate <= fromdate 
         && re.EndDate >= todate 
         orderby 
         vv.ID, 
         rv.OwnerName 
         select new 
         { 
          ID=rv.ID, 
          OName = rv.OName , 
          RegNo = rv.RegNo, 
          Speed = rv.Speed , 
         }).ToList(); 
      DataTable dt = new DataTable(); 
      dt.Rows.Add(dq); 
      return dt; 
     } 
     catch (Exception) 
     { 
      throw new Exception(); 

     } 
    } 

在变种DQ .. DQ显示此数据

[0] = { ID = 1, OName = "Khan", RegNo = "AJ-24",Speed = "124" } [1] = { ID = 2, OName = "Shah", RegNo = "AL-91",Speed = "95" } 

UPDATE

DataTable dt = new DataTable(); 
      dt.Columns.Add("ID", typeof(int)); 
      dt.Columns.Add("OName", typeof(string)); 
      dt.Columns.Add("RegNo", typeof(string)); 
      dt.Columns.Add("Speed", typeof(string)); 
      dt.Rows.Add(dq); 
      return dt; 

和异常发生

Unable to cast object of type 'System.Collections.Generic.List`1[<>f__AnonymousType6`5[System.Int32,System.String,System.String,System.String,System.String]]' to type 'System.IConvertible'.Couldn't store <System.Collections.Generic.List`1[<>f__AnonymousType6`5[System.Int32,System.String,System.String,System.String,System.String]]> in ID Column. 

回答

1

你将不得不在你的数据表

dt.Columns.Add(); 

添加列以了解更多信息:https://msdn.microsoft.com/en-us/library/hfx3s9wd(v=vs.110).aspx

+0

但我在的jQuery添加列..我在GridView控件绑定jQuery的 –

+0

抛出异常在asp.net web方法,有需要在数据表中的数据插入到它。前添加列,jQuery中定义的列将不添加任何列信息我n您已经在的WebMethod – Deep

+0

定义的数据表检查我更新的代码,我增加一列,但仍 –