So I'm binding the data to the treelist via datatable. It defintely has data (over 2000 rows), and I'm using the needsdatasource event handler to bind. It must be recognizing SOMETHING because after it binds, the column names from the data appear in the list it just show no data. VS 2015 is that makes a difference. Code below:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxx.aspx.cs" Inherits="xxx.xxx.xxx" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
meta
http-equiv
=
"X-UA-Compatible"
content
=
"IE=edge"
/>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
></
telerik:RadScriptManager
>
<
div
>
<
div
>
<
telerik:RadDateTimePicker
runat
=
"server"
ID
=
"datePicker"
Width
=
"175px"
></
telerik:RadDateTimePicker
><
asp:Button
runat
=
"server"
ID
=
"btnLoad"
Text
=
"Load"
OnClick
=
"btnLoad_Click"
/><
asp:Button
runat
=
"server"
ID
=
"btnExport"
OnClick
=
"btn_Export_Click"
Text
=
"Export To Excel"
/><
br
/>
<
telerik:RadTreeList
ID
=
"RadTreeList1"
runat
=
"server"
AllowPaging
=
"true"
PageSize
=
"3"
DataKeyNames
=
"USERID"
OnNeedDataSource
=
"RadTreeList1_NeedDataSource"
ParentDataKeyNames
=
"CustomerID"
>
</
telerik:RadTreeList
>
</
div
>
</
div
>
</
form
>
</
body
>
</
html
>
using
System;
using
System.Collections.Generic;
using
System.Configuration;
using
System.Data;
using
System.Data.SqlClient;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
namespace
xxx.xxx
{
public
partial
class
Tracker : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
datePicker.SelectedDate = DateTime.Now;
}
protected
void
RadTreeList1_NeedDataSource(
object
sender, Telerik.Web.UI.TreeListNeedDataSourceEventArgs e)
{
var dt = GetDataSource();
RadTreeList1.DataSource = dt;
}
protected
void
btnLoad_Click(
object
o,EventArgs e)
{
RadTreeList1.Rebind();
}
protected
void
btn_Export_Click(
object
o,EventArgs e)
{
RadTreeList1.ExportSettings.Excel.Format = TreeListExcelFormat.Biff;
RadTreeList1.ExportToExcel();
}
public
DataTable GetDataSource()
{
var dt =
new
DataTable();
var strQuery =
""
;
strQuery +=
" select "
;
strQuery +=
" USERID [CustomerID]"
;
strQuery +=
", USERID "
;
strQuery +=
", FileInput"
;
strQuery +=
", MeterNo "
;
strQuery +=
", MeterName "
;
strQuery +=
" ,LastReadTime "
;
strQuery +=
" from xx i "
;
strQuery +=
" JOIN xxx u ON u.CustomerID = i.USERID "
;
strQuery +=
" where ConnectionDevice = 18 AND isActive=1"
;
strQuery +=
" and u.isParent = 1 "
;
strQuery +=
" AND Time<@Time "
;
strQuery +=
" order by userid,fileinput,meterno"
;
using
(var con =
new
SqlConnection(ConfigurationManager.ConnectionStrings[
"xxx"
].ConnectionString))
{
con.Open();
var cmd =
new
SqlDataAdapter(strQuery, con);
cmd.SelectCommand.Parameters.AddWithValue(
"@Time"
,
"11/1/2015"
);
cmd.Fill(dt);
}
return
dt;
}
}
}
Like I said it displays the treelist with all the columns from the query and corresponding datatable fine, but it's not displaying any data despite having 2000+records.