Following the advice in Veli Pehlivanov's Blog post I'm able to bind to a WCF service I created, however I can not get paging to work. I'm able to successfully bind to the service, the ListView is pouplated with data, I just get ALL the data when the page loads. It doesn't appear to be honoring the AllowPaging or PageSize properties. Since I'm using an svc-less service I followed the Veli's example for binding to any general JSON feed and the returned JSON is in the format of:
{
-"Result": {
+"Data_Items": [...],
"Item_Count": 33
}
}
{
-"Result": {
+"Data_Items": [...],
"Item_Count": 33
}
}
I'm assuming that since I'm getting data the DataPropertyName and DataCountName aren't the issue... but I'm not sure where I'm going wrong.
Below is the markup for the ListView, the Javascript and CSS I'm using. Does anyone know what I'm doing wrong?
Markup:
Javascript:
CSS:
Below is the markup for the ListView, the Javascript and CSS I'm using. Does anyone know what I'm doing wrong?
Markup:
<
telerik:RadListView
ID
=
"lvPostings"
runat
=
"server"
AllowPaging
=
"true"
PageSize
=
"9"
>
<
LayoutTemplate
>
<
div
id
=
"listView"
>
<
a
class
=
"pagePrev"
href
=
"javascript:void(0);"
title
=
"Go to previous page"
></
a
>
<
a
class
=
"pageNext"
href
=
"javascript:void(0);"
title
=
"Go to next page"
></
a
>
<
div
id
=
"items"
>
</
div
>
</
div
>
</
LayoutTemplate
>
<
ClientSettings
>
<
DataBinding
ItemPlaceHolderID
=
"items"
>
<
ItemTemplate
>
<
div
class
=
"item"
>
<
span
class
=
"name"
>#= UContactName #</
span
>
<
span
class
=
"company"
>#= Division #</
span
>
<
span
class
=
"title"
>#= PositionTitle #</
span
>
<
br
/>
</
div
>
</
ItemTemplate
>
<
EmptyDataTemplate
>
<
div
class
=
"empty"
>
No Matching Data
</
div
>
</
EmptyDataTemplate
>
<
DataService
Location
=
"http://linkapi/SLogic/Postings/?format=json"
HttpMethod
=
"Get"
ResponseType
=
"JSONP"
DataPropertyName
=
"Result.Data_Items"
CountPropertyName
=
"Result.Item_Count"
/>
</
DataBinding
>
<
ClientEvents
OnDataBound
=
"onListViewDataBound"
/>
</
ClientSettings
>
</
telerik:RadListView
>
Javascript:
<script type=
"text/javascript"
>
var
listView;
function
pageLoad()
{
listView = $find(
"lvPostings"
);
}
(
function
($)
{
$(
function
()
{
$(
".pagePrev"
).click(
function
(e)
{
listView.page(listView.get_currentPageIndex() - 1);
});
$(
".pageNext"
).click(
function
(e)
{
listView.page(listView.get_currentPageIndex() + 1);
});
});
})($telerik.$);
function
onListViewDataBound(sender, args)
{
$telerik.$(
".pagePrev"
).css(
"display"
, sender.get_currentPageIndex() === 0 ?
"none"
:
""
);
$telerik.$(
".pageNext"
).css(
"display"
, sender.get_currentPageIndex() === sender.get_pageCount() - 1 ?
"none"
:
""
);
}
</script>
CSS:
#listView
{
width
:
780px
;
height
:
270px
;
margin
:
20px
auto
;
position
:
relative
;
}
.pagePrev, .pageNext
{
width
:
22px
;
height
:
22px
;
position
:
absolute
;
top
:
132px
;
background
:
transparent
url
(
'Common/sprite.gif'
)
no-repeat
scroll
0
0
;
}
.pagePrev
{
left
:
-40px
;
}
.pagePrev
{
background-position
:
0
-700px
;
}
.pagePrev:hover
{
background-position
:
0
-750px
;
}
.pageNext
{
right
:
-15px
;
}
.pageNext
{
background-position
:
0
-850px
;
}
.pageNext:hover
{
background-position
:
0
-900px
;
}
.item
{
float
:
left
;
background-color
:
#333333
;
color
:
#ffffff
;
cursor
:
pointer
;
font-size
:
12px
;
height
:
76px
;
padding-top
:
10px
;
width
:
240px
;
margin
:
5px
;
-moz-border-radius:
5px
;
-webkit-border-radius:
5px
;
border-radius:
5px
;
-moz-box-shadow:
1px
1px
3px
#212121
;
-webkit-box-shadow:
1px
1px
3px
#212121
;
box-shadow:
1px
1px
3px
#212121
;
position
:
relative
;
}
.item:hover
{
color
:
black
;
background-color
:
#9EC101
;
background-image
: -moz-linear-gradient(
#577D00
,
#89AC05
);
background-image
: -webkit-linear-gradient(
#577D00
,
#89AC05
);
background-image
: -o-linear-gradient(
#577D00
,
#89AC05
);
background-image
: linear-gradient(
#577D00
,
#89AC05
);
}
.item img, .item .photo
{
width
:
57px
;
height
:
70px
;
float
:
left
;
border
:
1px
solid
#0E0E0E
;
margin
:
-3px
10px
0
7px
;
background-color
:
#111111
;
}
.item .name, .item .company
{
display
:
block
;
margin-bottom
:
4px
;
line-height
:
14px
;
}
.item .company
{
line-height
:
12px
;
text-transform
:
uppercase
;
}
.item .title
{
position
:
absolute
;
right
:
10px
;
bottom
:
5px
;
font-size
:
12px
;
}
.empty
{
padding
:
10px
;
text-align
:
center
;
color
: White;
background-color
:
#333333
;
-moz-border-radius:
5px
;
-webkit-border-radius:
5px
;
border-radius:
5px
;
-moz-box-shadow:
1px
1px
3px
#212121
;
-webkit-box-shadow:
1px
1px
3px
#212121
;
box-shadow:
1px
1px
3px
#212121
;
}