1 Answer, 1 is accepted
0

Richard
Top achievements
Rank 1
answered on 12 Mar 2012, 04:51 PM
Janaki:
You can configure a RadGrid that uses EditMode="InPlace" to also have a filtering functionality by setting the property: AllowFilteringByColumn="True".
Here's some demo code that has inline edit mode that is initiated by double-clicking the row. It also has filtering by column.
Default.aspx:
See this demo in action at: http://screencast.com/t/occKZGYVksj
Hope this helps.
You can configure a RadGrid that uses EditMode="InPlace" to also have a filtering functionality by setting the property: AllowFilteringByColumn="True".
Here's some demo code that has inline edit mode that is initiated by double-clicking the row. It also has filtering by column.
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
<
telerik:RadStyleSheetManager
id
=
"RadStyleSheetManager1"
runat
=
"server"
/>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
/>
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"RadGrid1"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"RadGrid1"
LoadingPanelID
=
"RadAjaxLoadingPanel1"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
/>
<
telerik:RadCodeBlock
runat
=
"server"
ID
=
"radCodeBlock"
>
<
script
type
=
"text/javascript"
>
<!--
var hasChanges, inputs, dropdowns, editedRow;
function RowClick(sender, eventArgs) {
if (editedRow && hasChanges) {
hasChanges = false;
if (confirm("Update changes?")) {
$find("<%= RadGrid1.ClientID %>").get_masterTableView().updateItem(editedRow);
}
}
}
function RowDblClick(sender, eventArgs) {
editedRow = eventArgs.get_itemIndexHierarchical();
$find("<%= RadGrid1.ClientID %>").get_masterTableView().editItem(editedRow);
}
function GridCommand(sender, args) {
if (args.get_commandName() != "Edit") {
editedRow = null;
}
}
function GridCreated(sender, eventArgs) {
var gridElement = sender.get_element();
var elementsToUse = [];
inputs = gridElement.getElementsByTagName("input");
for (var i = 0; i <
inputs.length
; i++) {
var
lowerType
=
inputs
[i].type.toLowerCase();
if (lowerType == "hidden" || lowerType == "button") {
continue;
}
Array.add(elementsToUse, inputs[i]);
inputs[i]
.onchange
=
TrackChanges
;
}
dropdowns
=
gridElement
.getElementsByTagName("select");
for (var
i
=
0
; i < dropdowns.length; i++) {
dropdowns[i]
.onchange
=
TrackChanges
;
}
setTimeout(function () { if (elementsToUse[0]) elementsToUse[0].focus(); }, 100);
}
function TrackChanges(e) {
hasChanges
=
true
;
}
function showFilterItem() {
$find('<%=RadGrid1.ClientID %>').get_masterTableView().showFilterItem();
}
function hideFilterItem() {
$find('<%=RadGrid1.ClientID %>').get_masterTableView().hideFilterItem();
}
-->
</
script
>
</
telerik:RadCodeBlock
>
<
telerik:RadGrid
AutoGenerateColumns
=
"False"
ID
=
"RadGrid1"
DataSourceID
=
"SqlDataSource1"
Width
=
"760px"
AllowFilteringByColumn
=
"True"
AllowSorting
=
"True"
PageSize
=
"15"
ShowFooter
=
"True"
AllowPaging
=
"True"
runat
=
"server"
GridLines
=
"None"
EnableLinqExpressions
=
"False"
CellSpacing
=
"0"
>
<
PagerStyle
Mode
=
"NextPrevAndNumeric"
/>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
MasterTableView
AutoGenerateColumns
=
"false"
EditMode
=
"InPlace"
AllowFilteringByColumn
=
"True"
ShowFooter
=
"True"
TableLayout
=
"Auto"
>
<
Columns
>
<
telerik:GridNumericColumn
DataField
=
"OrderID"
HeaderText
=
"OrderID"
SortExpression
=
"OrderID"
UniqueName
=
"OrderID"
FilterControlWidth
=
"40px"
AutoPostBackOnFilter
=
"false"
CurrentFilterFunction
=
"equalto"
FilterDelay
=
"4000"
ShowFilterIcon
=
"false"
>
</
telerik:GridNumericColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"105px"
DataField
=
"ShipName"
HeaderText
=
"ShipName"
SortExpression
=
"ShipName"
UniqueName
=
"ShipName"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
ShowFilterIcon
=
"false"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDateTimeColumn
FilterControlWidth
=
"50px"
DataField
=
"OrderDate"
HeaderText
=
"OrderDate"
SortExpression
=
"OrderDate"
UniqueName
=
"OrderDate"
PickerType
=
"None"
DataFormatString
=
"{0:d}"
>
</
telerik:GridDateTimeColumn
>
<
telerik:GridDateTimeColumn
FilterControlWidth
=
"120px"
DataField
=
"ShippedDate"
HeaderText
=
"ShippedDate"
SortExpression
=
"ShippedDate"
UniqueName
=
"ShippedDate"
PickerType
=
"DatePicker"
DataFormatString
=
"{0:D}"
>
<
HeaderStyle
Width
=
"160px"
/>
</
telerik:GridDateTimeColumn
>
<
telerik:GridBoundColumn
FilterControlWidth
=
"50px"
DataField
=
"ShipCountry"
HeaderText
=
"ShipCountry"
SortExpression
=
"ShipCountry"
UniqueName
=
"ShipCountry"
>
</
telerik:GridBoundColumn
>
<
telerik:GridMaskedColumn
FilterControlWidth
=
"50px"
DataField
=
"ShipPostalCode"
HeaderText
=
"ShipPostalCode"
SortExpression
=
"ShipPostalCode"
UniqueName
=
"ShipPostalCode"
Mask
=
"#####"
>
<
FooterStyle
Font-Bold
=
"true"
/>
</
telerik:GridMaskedColumn
>
<
telerik:GridNumericColumn
HeaderStyle-Width
=
"90px"
FilterControlWidth
=
"50px"
DataField
=
"Freight"
DataType
=
"System.Decimal"
HeaderText
=
"Freight"
SortExpression
=
"Freight"
UniqueName
=
"Freight"
Aggregate
=
"Sum"
>
<
FooterStyle
Font-Bold
=
"true"
/>
</
telerik:GridNumericColumn
>
</
Columns
>
</
MasterTableView
>
<
ClientSettings
>
<
ClientEvents
OnRowClick
=
"RowClick"
OnRowDblClick
=
"RowDblClick"
OnGridCreated
=
"GridCreated"
OnCommand
=
"GridCommand"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
<
asp:SqlDataSource
ID
=
"SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
SelectCommand="SELECT * FROM [Orders]" runat="server">
</
asp:SqlDataSource
>
</
form
>
</
body
>
</
html
>
See this demo in action at: http://screencast.com/t/occKZGYVksj
Hope this helps.