2016-07-16 9 views
0

Ich versuche, Daten in Rasteransicht über Web-Methode und Jquery-Funktion anzuzeigen, also versuche ich dies. Ich versuche, gridview angezeigt werden, wenn der Benutzer wählen Sie Wert aus der Drop-down und wählen Sie stammt aus dem KalenderEingabe-Array ist länger

$(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(); 

     } 
    } 

in var dq .. dq diese Daten zeigen

[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; 

und Ausnahme auftreten

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. 

Antwort

1

Sie die Spalten in Sie Datentabelle

dt.Columns.Add(); 

für weitere Informationen hinzufügen: https://msdn.microsoft.com/en-us/library/hfx3s9wd(v=vs.110).aspx

+0

aber ich hinzufügen, Spalten in meinem Jquery .. i gridview binden in jquery –

+0

Die Ausnahme wird in der asp.net-Webmethode ausgelöst, dort müssen Sie die Spalten in der Datentabelle hinzufügen, bevor Sie die Daten einfügen. Die in jquery definierten Spalten fügen keine Spalteninformationen hinzu n die Datentabelle, die Sie in webmethod – Deep

+0

definiert haben, überprüfen Sie meine Update-Code ich Spalten hinzufügen, aber immer noch gleichen Fehler auftreten @ Deep –