or
<telerik:RadAjaxPanel ID=
"RadAjaxPanel1"
runat=
"server"
>
<telerik:RadGrid ID=
"radGridBooks"
runat=
"server"
AutoGenerateColumns=
"False"
ShowFooter=
"True"
CellSpacing=
"0"
GridLines=
"None"
Skin=
"Default"
OnNeedDataSource=
"radGridBooks_NeedDataSource"
>
<MasterTableView CommandItemDisplay=
"Top"
EditMode=
"PopUp"
GridLines=
"None"
TableLayout=
"Fixed"
>
<CommandItemSettings AddNewRecordText=
"Add New Book"
RefreshText=
"Refresh"
></CommandItemSettings>
<Columns>
<telerik:GridEditCommandColumn></telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField=
"ID"
UniqueName=
"ID"
HeaderText=
"Book ID"
></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField=
"Name"
HeaderText=
"Book Name"
>
<ColumnValidationSettings EnableRequiredFieldValidation=
"true"
EnableModelErrorMessageValidation=
"true"
>
<RequiredFieldValidator ForeColor=
"Red"
ErrorMessage=
"Required"
></RequiredFieldValidator>
</ColumnValidationSettings>
</telerik:GridBoundColumn>
<telerik:GridButtonColumn Text=
"Del"
CommandName=
"DeleteBook"
CommandArgument=
"ID"
></telerik:GridButtonColumn>
</Columns>
<EditFormSettings EditFormType=
"Template"
CaptionDataField=
"ID"
PopUpSettings-ScrollBars=
"Auto"
PopUpSettings-Modal=
"True"
PopUpSettings-ShowCaptionInEditForm=
"true"
>
<FormTemplate>
<table width=
"100%"
>
<tr>
<td>Try</td>
</tr>
</table>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
<ClientSettings EnableRowHoverStyle=
"true"
>
</ClientSettings>
</telerik:RadGrid>
</telerik:RadAjaxPanel>
Protected
Sub
rgvMyGrid_RowCommand(
ByVal
sender
As
Object
,
ByVal
e
As
Telerik.Web.UI.GridCommandEventArgs)
Handles
rgvMyGrid.ItemCommand
If
(e.CommandName =
"DeleteMSDS"
)
Then
Dim
myDelete
As
WinampButton =
CType
(e.Item.FindControl(
"btnDelete"
), WinampButton)
myDelete.CommandName =
"DeleteMSDS"
myDelete.CommandArgument = System.Web.UI.DataBinder.Eval(e.Item.DataItem,
"MSDSID"
)
If
System.Web.UI.DataBinder.Eval(e.item.DataItem,
"Active"
)
myDelete.Attributes.Add(
"onClick"
,
"javascript:return confirm('Are you sure you want to permanently delete this SDS / MSDS?');"
)
End
If
End
If
Protected
Sub
rgDispatch_ItemDataBound(sender
As
Object
, e
As
Telerik.Web.UI.GridItemEventArgs)
Handles
rgDispatch.ItemDataBound
'//Is it a GridDataItem
If
Not
IsNothing(TryCast(e.Item, Telerik.Web.UI.GridDataItem))
Then
'Get the instance of the right type
Dim
dataBoundItem
As
Telerik.Web.UI.GridDataItem =
DirectCast
(e.Item, Telerik.Web.UI.GridDataItem)
'Set the desired color on the Status column based on the value
Dim
StatusColIndex
As
Integer
= rgDispatch.Columns.FindByUniqueName(
"Status"
).OrderIndex
Select
Case
dataBoundItem(
"Status"
).Text
Case
"Loading"
dataBoundItem(
"Status"
).BackColor = System.Drawing.Color.Yellow
Case
"Loaded"
dataBoundItem(
"Status"
).BackColor = System.Drawing.Color.DodgerBlue
Case
"Claimed"
dataBoundItem(
"Status"
).BackColor = System.Drawing.Color.Orange
Case
"Started"
dataBoundItem(
"Status"
).BackColor = System.Drawing.Color.FromArgb(19, 229, 19)
'Green color
Case
"Stopped"
dataBoundItem(
"Status"
).BackColor = System.Drawing.Color.IndianRed
End
Select
'Set the desired color on the Status column based on the value
Dim
MatReadyColIndex
As
Integer
= rgDispatch.Columns.FindByUniqueName(
"MatReady"
).OrderIndex
Select
Case
dataBoundItem(
"MatReady"
).Text
Case
"Yes"
e.Item.Cells(MatReadyColIndex).BackColor = System.Drawing.Color.FromArgb(19, 229, 19)
Case
"No"
e.Item.Cells(MatReadyColIndex).BackColor = System.Drawing.Color.IndianRed
End
Select
End
If
If
Not
IsNothing(TryCast(e.Item, Telerik.Web.UI.GridPagerItem))
Then
Dim
pager
As
Telerik.Web.UI.GridPagerItem =
DirectCast
(e.Item, Telerik.Web.UI.GridPagerItem)
Dim
PagerLabel
As
Label = pager.FindControl(
"ChangePageSizeLabel"
)
PagerLabel.Text =
"Items per Page"
End
If
End
Sub
<
telerik:GridTemplateColumn
ColumnGroupName
=
"DLB"
UniqueName
=
"Location"
Display
=
"True"
HeaderText
=
"Files"
>
<
ItemTemplate
>
<
a
href
=
"<%# Eval("
Location")%>" target="_blank">Open folder</
a
>
</
ItemTemplate
>
</
telerik:GridTemplateColumn
>
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
Telerik.Web.UI;
using
System.Web.Services;
namespace
SMTX.Common.Web {
public
partial
class
gridtest : System.Web.UI.Page {
protected
void
Page_Load(
object
sender, EventArgs e) {
if
(!Page.IsPostBack)
initGrid();
}
public
void
initGrid() {
Forms.BL.EntityClasses.ViewEntity objView = Forms.BL.MyCode.ViewFactory.fetch(18);
RadGrid1.AllowFilteringByColumn =
true
;
GridBoundColumn objCol =
new
GridBoundColumn {
AllowFiltering =
true
,
DataField =
"Field1"
,
HeaderText =
"Field1"
,
DataType = Type.GetType(
"System.String"
),
FilterTemplate =
new
FilterTemplateCombo()
};
RadGrid1.Columns.Add(objCol);
objCol =
new
GridBoundColumn {
AllowFiltering =
false
,
DataField =
"Field2"
,
HeaderText =
"Field2"
,
DataType = Type.GetType(
"System.String"
)
};
RadGrid1.Columns.Add(objCol);
ScriptManager.RegisterStartupScript(
this
,
this
.GetType(),
"CallGetView"
, @
"setTimeout(function() {radGrid_Init();} , 1000);"
,
true
);
}
[WebMethod]
public
static
List<dataContainer> GetData(List<GridFilterExpression> p_lstFilterExpressions) {
List<dataContainer> lstData = getDataForGrid(p_lstFilterExpressions);
return
lstData;
}
public
static
List<dataContainer> getDataForGrid(List<GridFilterExpression> p_lstFilterExpressions) {
List<dataContainer> lstData = dataContainer.getTestData();
List<String> lstFilterValues =
null
;
if
(p_lstFilterExpressions.Count > 0)
lstFilterValues = p_lstFilterExpressions[0].FieldValue.Split(
new
[]{
"||"
}, StringSplitOptions.RemoveEmptyEntries).ToList();
if
(lstFilterValues ==
null
)
return
lstData;
else
return
lstData.Where(r => lstFilterValues.Contains(r.Field1)).ToList();
}
}
public
class
dataContainer {
public
Object Field1 {
get
;
set
; }
public
Object Field2 {
get
;
set
; }
public
static
List<dataContainer> getTestData() {
List<dataContainer> lstToRetrun =
new
List<dataContainer>();
lstToRetrun.Add(
new
dataContainer { Field1 =
"Name1"
, Field2 =
"Name1field2"
});
lstToRetrun.Add(
new
dataContainer { Field1 =
"Name2"
, Field2 =
"Name2field2"
});
return
lstToRetrun;
}
}
public
class
FilterTemplateCombo : ITemplate {
object
m_objDataSource;
public
FilterTemplateCombo() {
m_objDataSource =
new
[] {
"Name1"
,
"Name2"
};
}
public
void
InstantiateIn(Control objContainer) {
RadComboBox objCombobox =
new
RadComboBox();
objContainer.Controls.Add(objCombobox);
objCombobox.DataSource = m_objDataSource;
objCombobox.DataBind();
objCombobox.OnClientItemChecked =
"RadGrid_ComboBoxMultiFilterCommand"
;
objCombobox.CheckBoxes =
true
;
foreach
(RadComboBoxItem objItem
in
objCombobox.Items)
objItem.Checked =
true
;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="gridtest.aspx.cs" Inherits="SMTX.Common.Web.gridtest" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajax" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
html
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
ajax:ToolkitScriptManager
ID
=
"MyToolkitScriptManager"
runat
=
"server"
EnablePageMethods
=
"true"
/>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
>
<
ClientSettings
>
<
ClientEvents
OnCommand
=
"RadGrid_Command"
/>
</
ClientSettings
>
</
telerik:RadGrid
>
<
telerik:RadScriptBlock
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function radGrid_Init() {
var tableView = $find("RadGrid1").get_masterTableView();
PageMethods.GetData(tableView.get_filterExpressions().toList(), RadGrid_Update);
}
function RadGrid_Command(sender, args) {
args.set_cancel(true);
var filterExpressions = sender.get_masterTableView().get_filterExpressions();
PageMethods.GetData(filterExpressions.toList(), RadGrid_Update);
}
function RadGrid_ComboBoxMultiFilterCommand(sender, args) {
var gridTableView = sender.get_parent().get_parent().get_masterTableView();
var arr_objItems = sender.get_checkedItems();
if (arr_objItems.length > 0) {
var strData = "";
for (var i = 0; i <
arr_objItems.length
; i++)
strData += "||" + arr_objItems[i].get_value();
gridTableView.filter("Field1", strData, Telerik.Web.UI.GridFilterFunction.Custom);
} else {
gridTableView.filter("Field1", "", Telerik.Web.UI.GridFilterFunction.NoFilter);
}
}
function RadGrid_Update(result) {
var tableView = $find("RadGrid1").get_masterTableView();
tableView.set_dataSource(result);
tableView.dataBind();
}
</script>
</
telerik:RadScriptBlock
>
</
form
>
</
body
>
</
html
>
<
NoRecordsTemplate
>
<
div
style
=
"text-align: center; width: 100%;"
>
<
asp:Label
Text="<%$Resources:RadGridLib,grid_client_master_no_records %>" ID="LabelNoDoc" runat="server" />
</
div
>
</
NoRecordsTemplate
>