我尝试通过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");

                 }
             });
         }


Web方法

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

        }
    }


在var dq .. dq中显示此数据

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


更新

   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.

最佳答案

您将不得不在数据表中添加列

dt.Columns.Add();


有关更多信息:https://msdn.microsoft.com/en-us/library/hfx3s9wd(v=vs.110).aspx

关于javascript - 输入数组更长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38408036/

10-10 22:00