Hi,
Im using Rad ListView in my application and everything was going great until I decided to add search functionality, the search was a success and it displays the records founded the problem is if the found records were in different pages see what happens once I go to another page is that it cancels the search somehow and it reloads all the original records
this is my ListView
and here is the code of my search Button click event handler
Help please it is quite an annoying problem
Thanks in advance
PS. : Sorry if the code seems a bit long :) it is just basic, only a lot of templates
Im using Rad ListView in my application and everything was going great until I decided to add search functionality, the search was a success and it displays the records founded the problem is if the found records were in different pages see what happens once I go to another page is that it cancels the search somehow and it reloads all the original records
this is my ListView
<
telerik:RadListView
ID
=
"packageListView"
runat
=
"server"
DataKeyNames
=
"PackageID"
ItemPlaceholderID
=
"PackageContainer"
AllowPaging
=
"True"
OnItemCommand
=
"packageListView_ItemCommand"
OnNeedDataSource
=
"packageListView_NeedDataSource"
>
<
LayoutTemplate
>
<
fieldset
style
=
"max-width: 946px;"
>
<
legend
>Package</
legend
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
width
=
"100%"
>
<
tr
>
<
td
>
<
telerik:RadDataPager
ID
=
"RadDataPager1"
runat
=
"server"
PagedControlID
=
"packageListView"
PageSize
=
"1"
CssClass
=
"pagerStyle"
>
<
Fields
>
<
telerik:RadDataPagerButtonField
FieldType
=
"First"
/>
<
telerik:RadDataPagerButtonField
FieldType
=
"Numeric"
/>
<
telerik:RadDataPagerButtonField
FieldType
=
"NextLast"
/>
<
telerik:RadDataPagerPageSizeField
PageSizeComboWidth
=
"60"
PageSizeText
=
"Page Size: "
/>
<
telerik:RadDataPagerGoToPageField
CurrentPageText
=
"Page: "
TotalPageText
=
"of"
SubmitButtonText
=
"Go"
TextBoxWidth
=
"25"
/>
<
telerik:RadDataPagerTemplatePageField
>
<
PagerTemplate
>
<
div
style
=
"float: right; padding-left: 50px;"
>
<
b
>Items
<
asp:Label
runat
=
"server"
ID
=
"CurrentPageLabel"
Text="<%# (Container.Owner.TotalRowCount > 0)? Container.Owner.StartRowIndex + 1 : 0%>"></
asp:Label
>
to
<
asp:Label
runat
=
"server"
ID
=
"TotalPagesLabel"
Text="<%# (Container.Owner.TotalRowCount > 0)? Container.Owner.StartRowIndex + Container.Owner.PageSize : 0 %>"></
asp:Label
>
of
<
asp:Label
runat
=
"server"
ID
=
"TotalItemsLabel"
Text="<%# Container.Owner.TotalRowCount%>"></
asp:Label
>
<
br
/>
</
b
>
</
div
>
</
PagerTemplate
>
</
telerik:RadDataPagerTemplatePageField
>
</
Fields
>
</
telerik:RadDataPager
>
</
td
>
</
tr
>
</
table
>
<
asp:PlaceHolder
runat
=
"server"
ID
=
"PackageContainer"
></
asp:PlaceHolder
>
<
div
style
=
"clear: both"
></
div
>
<
table
style
=
"width: 100%; margin-top: 5px;"
>
<
tr
>
<
td
style
=
"width: 25%;"
>
<
asp:Button
ID
=
"btnInitInsert"
runat
=
"server"
Text
=
"Insert Package"
OnClick
=
"btnInitInsert_Click"
/>
</
td
>
<
td
style
=
"text-align: right; width: 75%;"
>
<
asp:Label
ID
=
"lblSort1"
runat
=
"server"
Text
=
"Sort by:"
AssociatedControlID
=
"ddListSort"
Style
=
"padding-right: 5px;"
></
asp:Label
>
<
telerik:RadComboBox
ID
=
"ddListSort"
runat
=
"server"
AutoPostBack
=
"true"
OnSelectedIndexChanged
=
"ddListSort_SelectedIndexChanged"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"-Select Field to Sort"
Value
=
""
/>
<
telerik:RadComboBoxItem
Text
=
"Package Name"
Value
=
"CompanyName"
/>
<
telerik:RadComboBoxItem
Text
=
"Price"
Value
=
"PricePerMonth"
/>
<
telerik:RadComboBoxItem
Text
=
"Clear Sort"
Value
=
"ClearSort"
/>
</
Items
>
</
telerik:RadComboBox
>
<
asp:RadioButtonList
runat
=
"server"
RepeatLayout
=
"Flow"
RepeatDirection
=
"Horizontal"
ID
=
"rblSort"
AutoPostBack
=
"true"
OnSelectedIndexChanged
=
"rblSort_SelectedIndexChanged"
>
<
asp:ListItem
Text
=
"Ascending"
Value
=
"ASC"
Selected
=
"True"
></
asp:ListItem
>
<
asp:ListItem
Text
=
"Descending"
Value
=
"DESC"
></
asp:ListItem
>
</
asp:RadioButtonList
>
</
td
>
</
tr
>
</
table
>
</
fieldset
>
</
LayoutTemplate
>
<
ItemTemplate
>
<!--The widths/heights of the fieldset/outer tables in the item/edit/insert templates should match to avoid wrapping or visual discrepancies
in the tiles layout-->
<
fieldset
class
=
"fieldset"
>
<
legend
>Package Name:
<%# Eval("PackageName") %> </
legend
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"height: 100%; width:100%;"
>
<
tr
>
<
td
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"width: 95%"
>
<
tr
>
<
td
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
>
<
tr
>
<
td
style
=
"width:25%"
>
Description:
</
td
>
<
td
style
=
"width: 50%"
>
<%# Eval("PackageDesc") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Price(per Month):
</
td
>
<
td
>
<%# Eval("PricePerMonth") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Discount:
</
td
>
<
td
>
<%# Eval("discountPercent") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of Images:
</
td
>
<
td
>
<%# Eval("NumOfImg") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Numbrt of GIF:
</
td
>
<
td
>
<%# Eval("NumOfGIF") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number Of Flash:
</
td
>
<
td
>
<%# Eval("NumOfFlash") %>
</
td
>
</
tr
>
<
tr
>
<
td
>
Home Page Included(Yes/No)
</
td
>
<
td
>
<%# Eval("isHomePageIncluded") %>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
table
style
=
"width: 95%; margin-top: 30px"
>
<
tr
>
<
td
>
<
asp:Button
ID
=
"btnEdit"
runat
=
"server"
Text
=
"Edit"
CommandName
=
"Edit"
Width
=
"70px"
/>
</
td
>
<
td
style
=
"text-align: right"
>
<
asp:Button
ID
=
"btnDelete"
runat
=
"server"
Text
=
"Delete"
CommandName
=
"Delete"
Width
=
"70px"
OnClientClick
=
"return confirm('Are you certain you want to delete?');"
/>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
fieldset
>
</
ItemTemplate
>
<
EditItemTemplate
>
<!--The widths/heights of the fieldset/outer tables in the item/edit/insert templates should match to avoid wrapping or visual discrepancies
in the tiles layout-->
<
fieldset
class
=
"fieldset"
>
<
legend
>
Package Name:
<
asp:TextBox
ID
=
"txtPackageName"
runat
=
"server"
Text='<%# Bind("PackageName") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvPackageName"
runat
=
"server"
ControlToValidate
=
"txtPackageName"
ErrorMessage
=
"Please Enter Package Name"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
legend
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"height: 80%;"
width
=
"100%"
>
<
tr
>
<
td
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"width: 95%; margin-bottom: 5px"
>
<
tr
>
<
td
>
<
table
cellpadding
=
"0"
cellspacing
=
"2"
>
<
tr
>
<
td
style
=
"width: 25%"
>
Description:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtPackageDesc"
runat
=
"server"
Text='<%# Bind("PackageDesc") %>' TextMode="MultiLine"></
asp:TextBox
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Price(per Month):
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtPricePerMonth"
runat
=
"server"
Text='<%# Bind("PricePerMonth") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvPricePerMonth"
runat
=
"server"
ControlToValidate
=
"txtPricePerMonth"
ErrorMessage
=
"Please Enter the Package Price"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Discount:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtDiscountPercent"
runat
=
"server"
Text='<%# Bind("DiscountPercent") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvDiscountPercent"
runat
=
"server"
ControlToValidate
=
"txtDiscountPercent"
ErrorMessage
=
"Please Enter Discount Value (min:0)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of Images:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfImg"
runat
=
"server"
Text='<%# Bind("NumOfImg") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfImg"
runat
=
"server"
ControlToValidate
=
"txtNumOfImg"
ErrorMessage
=
"Please Enter The Number of Images"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of GIF:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfGIF"
runat
=
"server"
Text='<%# Bind("NumOfGIF") %>' TextMode="MultiLine"></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfGIF"
runat
=
"server"
ControlToValidate
=
"txtNumOfGIF"
ErrorMessage
=
"Please Enter The Nuber of GIF(s)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of Flash:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfFlash"
runat
=
"server"
Text='<%# Bind("NumOfFlash") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfFlash"
runat
=
"server"
ControlToValidate
=
"txtNumOfFlash"
ErrorMessage
=
"Please Enter The Number of Flash File(s)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Home page Included(Yes/No):
</
td
>
<
td
>
<
asp:CheckBox
runat
=
"server"
ID
=
"cbIsHomePageIncliuded"
Checked='<%# Bind("isHomePageIncluded")%>' />
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
>
<
div
style
=
"clear: both"
>
</
div
>
<
div
style
=
"float: left; padding-left: 30%;"
>
<
asp:Button
ID
=
"btnUpdate"
runat
=
"server"
Text
=
"Update"
CommandName
=
"Update"
/>
<
asp:Button
ID
=
"btnCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
/>
</
div
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
</
fieldset
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<!--The widths/heights of the fieldset/outer tables in the item/edit/insert templates should match to avoid wrapping or visual discrepancies
in the tiles layout-->
<
fieldset
class
=
"fieldset"
style
=
"clear: left; width: 540px"
>
<
legend
>Package Name:
<
asp:TextBox
ID
=
"txtPackageName"
runat
=
"server"
Text='<%# Bind("PackageName") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvPackageNamee"
runat
=
"server"
ControlToValidate
=
"txtPackageName"
ErrorMessage
=
"Please enter Package Name"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
legend
>
<
table
cellpadding
=
"0"
cellspacing
=
"0"
style
=
"height: 80%;"
width
=
"100%"
>
<
tr
>
<
td
>
<
table
cellpadding
=
"0"
cellspacing
=
"5"
style
=
"width: 95%; margin-bottom: 5px"
>
<
tr
>
<
td
style
=
"width: 25%"
>
Description:
</
td
>
<
td
style
=
"width: 75%"
>
<
asp:TextBox
ID
=
"txtPackageDesc"
runat
=
"server"
Text='<%# Bind("PackageDesc") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvPackageDesc"
runat
=
"server"
ControlToValidate
=
"txtPackageDesc"
ErrorMessage
=
"Please Enter Package Description"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Price(per Month):
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtPricePerMonth"
runat
=
"server"
Text='<%# Bind("PricePerMonth") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvPricePerMonth"
runat
=
"server"
ControlToValidate
=
"txtPricePerMonth"
ErrorMessage
=
"Please Enter Package Price"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Discount:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtDiscountPercent"
runat
=
"server"
Text='<%# Bind("DiscountPercent") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvDiscountPercent"
runat
=
"server"
ControlToValidate
=
"txtDiscountPercent"
ErrorMessage
=
"Please Enter Discount Value (min:0)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of Images:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfImg"
runat
=
"server"
Text='<%# Bind("NumOfImg") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfImg"
runat
=
"server"
ControlToValidate
=
"txtNumOfImg"
ErrorMessage
=
"Please Enter Number of Image(s)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of GIF:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfGIF"
runat
=
"server"
Text='<%# Bind("NumOfGIF") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfGIF"
runat
=
"server"
ControlToValidate
=
"txtNumOfGIF"
ErrorMessage
=
"Please Enter Number of GIF(s)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Number of Flash:
</
td
>
<
td
>
<
asp:TextBox
ID
=
"txtNumOfFlash"
runat
=
"server"
Text='<%# Bind("NumOfFlash") %>'></
asp:TextBox
>
<
asp:RequiredFieldValidator
ID
=
"rvNumOfFlash"
runat
=
"server"
ControlToValidate
=
"txtNumOfFlash"
ErrorMessage
=
"Please Enter Number of Flash File(s)"
Display
=
"Dynamic"
></
asp:RequiredFieldValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
Home Page Included(Yes/No):
</
td
>
<
td
>
<
asp:CheckBox
runat
=
"server"
ID
=
"cbIsHomePageIncliuded"
Checked='<%# Bind("isHomePageIncluded")%>' />
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
<
tr
>
<
td
colspan
=
"2"
>
<
div
style
=
"clear: both"
>
</
div
>
<
div
style
=
"float: left; padding-left: 40%;"
>
<
asp:Button
ID
=
"btnPerformInsert"
runat
=
"server"
Text
=
"Insert"
CommandName
=
"PerformInsert"
></
asp:Button
>
<
asp:Button
ID
=
"btnCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
> </
asp:Button
>
</
div
>
</
td
>
</
tr
>
</
table
>
</
fieldset
>
</
InsertItemTemplate
>
<
EmptyDataTemplate
>
<
fieldset
style
=
"width: 800px"
>
<
legend
>Packages</
legend
>No records for Packages available.
</
fieldset
>
</
EmptyDataTemplate
>
</
telerik:RadListView
>
public
void
btn_Search_Click(
object
sendr, EventArgs e)
{
packageDBDataContext db =
new
packageDBDataContext();
var query = from contact
in
db.Packages
where contact.PackageName.Contains(txtSearch.Text.Trim())
select contact;
packageListView.DataSource = query;
packageListView.DataBind();
}
Thanks in advance
PS. : Sorry if the code seems a bit long :) it is just basic, only a lot of templates