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 }}