【问题标题】:Input array is longer输入数组更长
【发布时间】:2016-11-19 08:49:51
【问题描述】:

我尝试通过 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]
    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.  

【问题讨论】:

    标签: javascript jquery linq gridview datatable


    【解决方案1】:

    您必须在数据表中添加列

    dt.Columns.Add();
    

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

    【讨论】:

    • 但是我在我的 jquery 中添加了列 .. 我在 jquery 中绑定了 gridview
    • 在asp.net web方法中抛出异常,在插入数据之前需要在datatable中添加列,jquery中定义的列不会添加任何列信息您在 webmethod 中定义的数据表
    • 检查我的更新代码我添加了列但仍然出现同样的错误@Deep
    • 您在将数据推送到表中后添加列信息。这就是为什么会出现同样的错误
    • 现在我在最后添加了 return dt 但同样的错误发生
    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 2018-12-13
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多