var radMenuMission = item.FindControl(RadMenuName)
as
RadMenu;
if
(radMenuMission !=
null
) {
var radMenuItem = radMenuMission.FindItemByText(
"Delete"
);
OnDetailTableDataBind
, but the NestedView doesn't have that property. What is the best route take if I have a datasource that can only be generated programmatic?
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
AllowSorting
=
"True"
GridLines
=
"None"
ShowGroupPanel
=
"True"
OnNeedDataSource
=
"RadGrid1_NeedDataSource"
OnDetailTableDataBind
=
"RadGrid1_DetailTableDataBind"
AllowFilteringByColumn
=
"True"
>
<
ClientSettings
AllowColumnsReorder
=
"True"
AllowDragToGroup
=
"True"
ReorderColumnsOnClient
=
"True"
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"ID"
AllowMultiColumnSorting
=
"True"
>
<
DetailTables
>
<
telerik:GridTableView
DataKeyNames
=
"ID"
Width
=
"100%"
runat
=
"server"
AutoGenerateColumns
=
"false"
>
<
Columns
>
<
telerik:GridBoundColumn
SortExpression
=
"Joined"
HeaderText
=
"Joined"
HeaderButtonType
=
"TextButton"
DataField
=
"Joined"
UniqueName
=
"Joined"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"Status"
HeaderText
=
"Status"
HeaderButtonType
=
"TextButton"
DataField
=
"Status"
UniqueName
=
"Status"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
SortExpression
=
"City"
HeaderText
=
"City"
HeaderButtonType
=
"TextButton"
DataField
=
"City"
UniqueName
=
"City"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
telerik:GridTableView
>
</
DetailTables
>
<
NestedViewSettings
>
</
NestedViewSettings
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
telerik:RadSplitter
ID
=
"RadSplitter1"
Runat
=
"server"
Width
=
"100%"
BorderSize
=
"2"
OnClientLoad
=
"OnSplitterLoaded"
BackColor
=
"White"
CssClass
=
"RoundedStyle"
Height
=
"600px"
Skin
=
"Web20"
>
<
telerik:RadPane
ID
=
"RadPane1"
Runat
=
"server"
Scrolling
=
"None"
Width
=
"20px"
BackColor
=
"#6086C1"
>
<
telerik:RadSlidingZone
ID
=
"RadSlidingZone1"
Runat
=
"server"
ClickToOpen
=
"True"
BackColor
=
"#6086C1"
Width
=
"20px"
Skin
=
"Web20"
>
<
telerik:RadSlidingPane
ID
=
"RadSlidingPane1"
Runat
=
"server"
Title
=
"Settings"
Scrolling
=
"Y"
MinWidth
=
"160"
Width
=
"160px"
BackColor
=
"#ECF4FD"
>
<
telerik:RadListBox
ID
=
"lstBxSettings"
runat
=
"server"
Skin
=
"Web20"
EnableDragAndDrop
=
"True"
ondropped
=
"LstBxSettings_Dropped"
Width
=
"100%"
style
=
"top: 0px; left: 0px"
>
<
ButtonSettings
TransferButtons
=
"All"
/>
<
Items
>
<
telerik:RadListBoxItem
ListBox
=
"lstBxSettings"
Text
=
"Horizontal Bar"
/>
<
telerik:RadListBoxItem
ListBox
=
"lstBxSettings"
Text
=
"Vertical Bar"
/>
</
Items
>
</
telerik:RadListBox
>
</
telerik:RadSlidingPane
>
<
telerik:RadSlidingPane
ID
=
"RadSlidingPane2"
Runat
=
"server"
Title
=
"Custom"
Scrolling
=
"Y"
MinWidth
=
"160"
BackColor
=
"#ECF4FD"
>
<
telerik:RadListBox
ID
=
"lstBxCustom"
runat
=
"server"
EnableDragAndDrop
=
"True"
ondropped
=
"RadListBox_Dropped"
Skin
=
"Web20"
Sort
=
"Ascending"
Width
=
"100%"
>
<
ButtonSettings
TransferButtons
=
"All"
/>
</
telerik:RadListBox
>
</
telerik:RadSlidingPane
>
<
telerik:RadSlidingPane
ID
=
"RadSlidingPane3"
Runat
=
"server"
Title
=
"Historical"
Scrolling
=
"Y"
MinWidth
=
"160"
Width
=
"160px"
BackColor
=
"#ECF4FD"
>
<
telerik:RadListBox
ID
=
"lstBxHistorical"
runat
=
"server"
EnableDragAndDrop
=
"True"
ondropped
=
"RadListBox_Dropped"
Skin
=
"Web20"
Sort
=
"Ascending"
Width
=
"100%"
>
</
telerik:RadListBox
>
</
telerik:RadSlidingPane
>
</
telerik:RadSlidingZone
>
</
telerik:RadPane
>
<
telerik:RadPane
ID
=
"RadPane2"
Runat
=
"server"
MinHeight
=
"500"
BorderColor
=
"White"
Scrolling
=
"None"
CssClass
=
"RoundedStyle"
>
</
telerik:RadPane
>
</
telerik:RadSplitter
>
public class CustomFilteredGridTemplateColumn : GridTemplateColumn
{
public override GridColumn Clone()
{
return base.Clone();
}
protected override void SetupFilterControls(System.Web.UI.WebControls.TableCell cell)
{
base.SetupFilterControls(cell);
cell.Controls.RemoveAt(0);
cell.Controls.AddAt(0,
new TextBox());
}
public override bool SupportsFiltering()
{
return true;
}
protected override string GetFilterDataField()
{
return this.DataField;
}
protected override void SetCurrentFilterValueToControl(TableCell cell)
{
base.SetCurrentFilterValueToControl(cell);
(cell.Controls[0]
as TextBox).Text = this.CurrentFilterValue;
}
protected override string GetCurrentFilterValueFromControl(TableCell cell)
{
return (cell.Controls[0] as TextBox).Text;
}
}
<telerik:RadGrid ID="ShipmentHistoryGrid" runat="server" Skin="Web20" OnNeedDataSource="OnShipmentHistoryGridNeedDataSource" |
ShowStatusBar="True" AutoGenerateColumns="False" GridLines="None" OnItemDataBound="OnItemDataBound" |
AllowFilteringByColumn="true" AllowSorting="true"> |
<PagerStyle Mode="NextPrevAndNumeric" /> |
<MasterTableView DataKeyNames="PackageID" CommandItemDisplay="None" TableLayout="Fixed"> |
<Columns> |
<telerik:GridDateTimeColumn FilterControlWidth="90px" DataField="ShippingDate" UniqueName="Date" |
HeaderText="Ship Date" DataFormatString="{0:d}" AutoPostBackOnFilter="true" ShowFilterIcon="false"> |
<HeaderStyle Width="95px" /> |
</telerik:GridDateTimeColumn> |
<telerik:GridBoundColumn DataField="Pin" UniqueName="Pin" HeaderText="Pin" AutoPostBackOnFilter="true" |
CurrentFilterFunction="Contains" ShowFilterIcon="false" > |
<HeaderStyle Width="100px" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="ShortService" UniqueName="ServiceType" HeaderText="Service" |
AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> |
<HeaderStyle Width="120px" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="Contact" UniqueName="Contact" HeaderText="Name" |
AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> |
<HeaderStyle Width="100px" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="City" UniqueName="City" HeaderText="City" AutoPostBackOnFilter="true" |
CurrentFilterFunction="Contains" ShowFilterIcon="false"> |
<HeaderStyle Width="100px" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn FilterControlWidth="30px" DataField="Province" UniqueName="Province" HeaderText="Province" |
AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> |
<HeaderStyle Width="60px" /> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="PostalCode" UniqueName="PostalCode" HeaderText="Postal Code" |
AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" ShowFilterIcon="false"> |
<HeaderStyle Width="95px" /> |
</telerik:GridBoundColumn> |
<telerik:GridCheckBoxColumn DataField="IsVoid" UniqueName="IsVoid" Visible="false"> |
</telerik:GridCheckBoxColumn> |
<telerik:GridTemplateColumn UniqueName="VoidColumn" AllowFiltering="false" HeaderText="Void"> |
<ItemTemplate> |
<asp:Button ID="btnVoid" runat="server" OnClick="OnClickVoid" Text="Void" /> |
<asp:Label ID="VoidLabel" runat="server" Text="Package Voided"></asp:Label> |
</ItemTemplate> |
<ItemStyle HorizontalAlign="Center"/> |
<HeaderStyle HorizontalAlign="Center" /> |
</telerik:GridTemplateColumn> |
</Columns> |
</MasterTableView> |
<ClientSettings> |
<Scrolling AllowScroll="true" UseStaticHeaders="true" /> |
</ClientSettings> |
</telerik:RadGrid> |
private
void
Page_PreRender(
object
sender, EventArgs e)
{
//this is the only way i know how to check what mode this grid control is operating in.
bool
isGridInsertion = Object.ReferenceEquals(
this
.DataItem.GetType(),
new
GridInsertionObject(
new
ArrayList()).GetType() );
if
(isGridInsertion !=
true
)
//we check this because the below int assignment breaks on a grid insertion (since ProductTypeID has no value during our Insert form, only populated on Edit)
{
int
productTypeID = (
int
)DataBinder.Eval(
this
.DataItem,
"ProductTypeID"
);
// do stuff
}
}