Hello
I have a radgrid with AllowFilteringByColumn=true and a JS function that hides the filter when the grid is empty:
function Filter(masterTable) {
var dataItems = masterTable.get_dataItems();
if (dataItems.length == 0) { masterTable.hideFilterItem(); } else { masterTable.showFilterItem(); }
}
however when i perform a search and if that search returns no information, this script also hide the filters, and i dont want to hide after filter is applied(only when grid have no records).
There is a way to know if filters were used? im new to telerik.
Thanks in advance
I have a radgrid with AllowFilteringByColumn=true and a JS function that hides the filter when the grid is empty:
function Filter(masterTable) {
var dataItems = masterTable.get_dataItems();
if (dataItems.length == 0) { masterTable.hideFilterItem(); } else { masterTable.showFilterItem(); }
}
however when i perform a search and if that search returns no information, this script also hide the filters, and i dont want to hide after filter is applied(only when grid have no records).
There is a way to know if filters were used? im new to telerik.
Thanks in advance
8 Answers, 1 is accepted
0

MikeS
Top achievements
Rank 1
answered on 23 Mar 2014, 06:22 PM
someone? :I
0

MikeS
Top achievements
Rank 1
answered on 23 Mar 2014, 09:38 PM
also i can keep showing the filters when users use the filterbycolumn, if there is a way to know that, but i didnt find any documentation about it.
any help? maybe you guys also have a better idea for this case.
Thanks
any help? maybe you guys also have a better idea for this case.
Thanks
0

MikeS
Top achievements
Rank 1
answered on 24 Mar 2014, 05:39 PM
tried to use filterexpressions and use inside if:
var filterExpressions = masterTable.get_masterTableView().get_filterExpressions();
if (dataItems.length == 0 && filterExpressions.length )
but it doesnt work...
var filterExpressions = masterTable.get_masterTableView().get_filterExpressions();
if (dataItems.length == 0 && filterExpressions.length )
but it doesnt work...
0

MikeS
Top achievements
Rank 1
answered on 25 Mar 2014, 05:48 PM
someone please...
0
Hello Mike,
Can you please share whether a server-side approach is suitable for you?
Looking forward to your reply.
Alternatively, you can use the following property:
Regards,
Eyup
Telerik
Can you please share whether a server-side approach is suitable for you?
protected
void
RadGrid1_ItemEvent(
object
sender, GridItemEventArgs e)
{
if
(e.EventInfo
is
GridInitializePagerItem)
{
summarizedCount += (e.EventInfo
as
GridInitializePagerItem).PagingManager.DataSourceCount;
e.Item.OwnerTableView.IsFilterItemExpanded = summarizedCount > 0;
}
}
Looking forward to your reply.
Alternatively, you can use the following property:
<
MasterTableView
...
ShowHeadersWhenNoRecords
=
"false"
>
Regards,
Eyup
Telerik
Build cross-platform mobile apps using Visual Studio and .NET. Register for the online webinar on 03/27/2014, 11:00AM US ET.. Seats are limited.
0

MikeS
Top achievements
Rank 1
answered on 26 Mar 2014, 05:28 PM
hello Eyup. thanks for the reply.
i actually got tired trying a way to do this on client side, so i started working on server side, and i got it working(but not 100% sure)...
after tests i will put here how i did it.
and this:
<MasterTableView ... ShowHeadersWhenNoRecords="false">
i have to check if this works... because if it does, i would eat my keyboard eheh
thanks for the reply!
i actually got tired trying a way to do this on client side, so i started working on server side, and i got it working(but not 100% sure)...
after tests i will put here how i did it.
and this:
<MasterTableView ... ShowHeadersWhenNoRecords="false">
i have to check if this works... because if it does, i would eat my keyboard eheh
thanks for the reply!
0

MikeS
Top achievements
Rank 1
answered on 26 Mar 2014, 06:27 PM
EDIT:
<MasterTableView ... ShowHeadersWhenNoRecords="false">
this hides everything, i just want the filters.
<MasterTableView ... ShowHeadersWhenNoRecords="false">
this hides everything, i just want the filters.
0

Princy
Top achievements
Rank 2
answered on 27 Mar 2014, 06:05 AM
Hi Mike,
You can try the following code snippet to hide filtering if no records are present before filtering.
C#:
Thanks,
Princy
You can try the following code snippet to hide filtering if no records are present before filtering.
C#:
int
totalItemCount;
bool
isFilter =
false
;
protected
void
RadGrid1_ItemEvent(
object
sender, GridItemEventArgs e)
{
if
(e.EventInfo
is
GridInitializePagerItem)
{
totalItemCount = (e.EventInfo
as
GridInitializePagerItem).PagingManager.DataSourceCount;
}
}
protected
void
RadGrid1_PreRender(
object
sender, EventArgs e)
{
Response.Write(totalItemCount);
if
(!isFilter)
{
if
(totalItemCount <= 0)
{
RadGrid1.AllowFilteringByColumn =
false
;
RadGrid1.Rebind();
}
}
}
protected
void
RadGrid1_ItemCommand(
object
sender, GridCommandEventArgs e)
{
if
(e.CommandName == RadGrid.FilterCommandName)
{
isFilter =
true
;
}
}
Thanks,
Princy