I had this working, but someone I broke it. When I use the autogenerated update, cancel and delete links, they hang. The edit link opens the edit form with no issues.
This seems to start when I tried to create the columns on my own. I wanted to change the link to a image button.
My code is below:
<
telerik:RadAjaxLoadingPanel
ID
=
"RadAjaxLoadingPanel1"
runat
=
"server"
Skin
=
"Default"
>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadGrid
ID
=
"RadGrid1"
runat
=
"server"
DataSourceID
=
"QUARK_PEERING"
GridLines
=
"None"
ShowStatusBar
=
"True"
AllowPaging
=
"True"
Skin
=
"Web20"
Width
=
"920px"
OnItemUpdated
=
"RadGrid1_ItemUpdated"
OnItemDeleted
=
"RadGrid1_ItemDeleted"
OnItemInserted
=
"RadGrid1_ItemInserted"
OnDataBound
=
"RadGrid1_DataBound"
AutoGenerateDeleteColumn
=
"True"
AutoGenerateEditColumn
=
"True"
AutoGenerateHierarchy
=
"True"
AllowAutomaticDeletes
=
"True"
AllowAutomaticInserts
=
"True"
AllowAutomaticUpdates
=
"True"
>
<
PagerStyle
Mode
=
"NextPrevNumericAndAdvanced"
></
PagerStyle
>
<
ClientSettings
AllowColumnsReorder
=
"True"
ReorderColumnsOnClient
=
"True"
>
<
Selecting
AllowRowSelect
=
"True"
/>
<
Scrolling
AllowScroll
=
"True"
UseStaticHeaders
=
"True"
/>
</
ClientSettings
>
<
AlternatingItemStyle
BackColor
=
"#DCE5BF"
/>
<
MasterTableView
AutoGenerateColumns
=
"false"
DataSourceID
=
"QUARK_PEERING"
DataKeyNames
=
"ASN"
CommandItemDisplay
=
"Top"
Name
=
"Peers"
AllowFilteringByColumn
=
"True"
>
<
CommandItemSettings
ExportToPdfText
=
"Export to Pdf"
ShowExportToPdfButton
=
"True"
ShowAddNewRecordButton
=
"True"
ShowExportToCsvButton
=
"True"
ShowExportToExcelButton
=
"True"
ShowExportToWordButton
=
"True"
></
CommandItemSettings
>
<
RowIndicatorColumn
FilterControlAltText
=
"Filter RowIndicator column"
>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
Visible
=
"True"
>
</
ExpandCollapseColumn
>
<
DetailTables
>
<
telerik:GridTableView
runat
=
"server"
CommandItemDisplay
=
"Top"
DataSourceID
=
"QUARK_PEERING2"
AutoGenerateColumns
=
"false"
DataKeyNames
=
"ID"
Name
=
"Peerings"
AllowPaging
=
"True"
PageSize
=
"3"
>
<
ParentTableRelation
>
<
telerik:GridRelationFields
DetailKeyField
=
"ASN"
MasterKeyField
=
"ASN"
/>
</
ParentTableRelation
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"ASN"
HeaderText
=
"ASN"
SortExpression
=
"ASN"
UniqueName
=
"ASN"
HeaderStyle-Width
=
"45px"
>
<
HeaderStyle
Width
=
"45px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridDropDownColumn
DataField
=
"EXCHANGE_ID"
DataSourceID
=
"QUARK_EXCHANGES"
HeaderText
=
"Exchange"
ListTextField
=
"EXCHANGE_NAME"
ListValueField
=
"EXCHANGE_ID"
UniqueName
=
"EXCHANGE_ID"
ColumnEditorID
=
"GridDropDownColumnEditor1"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridBoundColumn
DataField
=
"IPv4_IP_01"
HeaderText
=
"IPv4 Peer IP 1"
SortExpression
=
"IPv4_IP_01"
UniqueName
=
"IPv4_IP_01"
HeaderStyle-Width
=
"100px"
>
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"IPv4_IP_02"
HeaderText
=
"IPv4 Peer IP 2"
SortExpression
=
"IPv4_IP_02"
UniqueName
=
"IPv4_IP_02"
HeaderStyle-Width
=
"100px"
>
<
HeaderStyle
Width
=
"100px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"IPv6_IP_01"
HeaderText
=
"IPv6 Peer IP 1"
SortExpression
=
"IPv6_IP_01"
UniqueName
=
"IPv6_IP_01"
HeaderStyle-Width
=
"150px"
>
<
HeaderStyle
Width
=
"150px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"IPv6_IP_02"
HeaderText
=
"IPv6 Peer IP 2"
SortExpression
=
"IPv6_IP_02"
UniqueName
=
"IPv6_IP_02"
HeaderStyle-Width
=
"150px"
>
<
HeaderStyle
Width
=
"150px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"MAX_PREFIX"
HeaderText
=
"Maximum # of Prefixes"
SortExpression
=
"MAX_PREFIX"
UniqueName
=
"MAX_PREFIX"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"CURRENT_PREFIX"
HeaderText
=
"Current # of Prefixes"
SortExpression
=
"CURRENT_PREFIX"
UniqueName
=
"CURRENT_PREFIX"
HeaderStyle-Width
=
"75px"
>
<
HeaderStyle
Width
=
"75px"
></
HeaderStyle
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"MD5_PASSWORD"
HeaderText
=
"Peering Password"
SortExpression
=
"MD5_PASSWORD"
UniqueName
=
"MD5_PASSWORD"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
CommandItemSettings
ShowAddNewRecordButton
=
"True"
></
CommandItemSettings
>
<
RowIndicatorColumn
>
<
HeaderStyle
Width
=
"20px"
/>
</
RowIndicatorColumn
>
<
ExpandCollapseColumn
>
<
HeaderStyle
Width
=
"20px"
/>
</
ExpandCollapseColumn
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
telerik:GridTableView
>
</
DetailTables
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"COMPANY_NAME"
HeaderText
=
"Network Name"
SortExpression
=
"COMPANY_NAME"
UniqueName
=
"COMPANY_NAME"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"ASN"
HeaderText
=
"ASN"
SortExpression
=
"ASN"
UniqueName
=
"ASN"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PRIMARY_CONTACT"
HeaderText
=
"Primary Contact"
SortExpression
=
"PRIMARY_CONTACT"
UniqueName
=
"PRIMARY_CONTACT"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PRIMARY_EMAIL"
HeaderText
=
"Primary Email"
SortExpression
=
"PRIMARY_EMAIL"
UniqueName
=
"PRIMARY_EMAIL"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PRIMARY_NUMBER"
HeaderText
=
"Primary Email"
SortExpression
=
"PRIMARY_NUMBER"
UniqueName
=
"PRIMARY_NUMBER"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"SUPPORT_CONTACT"
HeaderText
=
"Support Contact"
SortExpression
=
"SUPPORT_CONTACT"
UniqueName
=
"SUPPORT_CONTACT"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"SUPPORT_EMAIL"
HeaderText
=
"Support Email"
SortExpression
=
"SUPPORT_EMAIL"
UniqueName
=
"SUPPORT_EMAIL"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"SUPPORT_NUMBER"
HeaderText
=
"Support Number"
SortExpression
=
"SUPPORT_NUMBER"
UniqueName
=
"SUPPORT_NUMBER"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PEERING_CONTACT"
HeaderText
=
"Peering Contact"
SortExpression
=
"PEERING_CONTACT"
UniqueName
=
"PEERING_CONTACT"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PEERING_EMAIL"
HeaderText
=
"Peering Email"
SortExpression
=
"PEERING_EMAIL"
UniqueName
=
"PEERING_EMAIL"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PEERING_NUMBER"
HeaderText
=
"Peering Number"
SortExpression
=
"PEERING_NUMBER"
UniqueName
=
"PEERING_NUMBER"
Visible
=
"False"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"PEERING_DB_LINK"
HeaderText
=
"PeeringDB Link"
SortExpression
=
"PEERING_DB_LINK"
UniqueName
=
"PEERING_DB_LINK"
Visible
=
"false"
>
</
telerik:GridBoundColumn
>
</
Columns
>
<
EditFormSettings
>
<
EditColumn
FilterControlAltText
=
"Filter EditCommandColumn column"
>
</
EditColumn
>
</
EditFormSettings
>
</
MasterTableView
>
<
PagerStyle
Mode
=
"NextPrevNumericAndAdvanced"
/>
<
FilterMenu
EnableImageSprites
=
"False"
>
</
FilterMenu
>
<
HeaderContextMenu
>
<
ExpandAnimation
Type
=
"OutBounce"
/>
</
HeaderContextMenu
>
</
telerik:RadGrid
>
<
telerik:GridDropDownListColumnEditor
ID
=
"GridDropDownColumnEditor1"
runat
=
"server"
DropDownStyle-Width
=
"110px"
/>
protected void RadGrid3_ItemCommand(object source, GridCommandEventArgs e) |
{ |
///I have to hide the fields SID and Username in the edit mode but show them in the insert mode /// |
RadGrid grid = (source as RadGrid); |
if (e.CommandName == RadGrid.InitInsertCommandName) |
{ |
grid.MasterTableView.ClearEditItems(); |
RadGrid3.MasterTableView.GetColumn("SID").EditFormHeaderTextFormat = "SID:"; |
RadGrid3.MasterTableView.GetColumn("Username").EditFormHeaderTextFormat = "Username:"; |
} |
if (e.CommandName == RadGrid.EditCommandName) |
{ |
e.Item.OwnerTableView.IsItemInserted = false; |
RadGrid3.MasterTableView.GetColumn("SID").EditFormHeaderTextFormat = ""; |
RadGrid3.MasterTableView.GetColumn("Username").EditFormHeaderTextFormat = ""; |
} |
///show export |
if (e.CommandName == Telerik.Web.UI.RadGrid.ExportToExcelCommandName || |
e.CommandName == Telerik.Web.UI.RadGrid.ExportToWordCommandName || |
e.CommandName == Telerik.Web.UI.RadGrid.ExportToCsvCommandName || |
e.CommandName == Telerik.Web.UI.RadGrid.ExportToPdfCommandName) |
{ |
ConfigureExport(); |
} |
} |
protected void RadGrid3_ItemDataBound(object sender, GridItemEventArgs e) |
{ |
// update form |
if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted == false) |
{ |
GridEditFormItem editFormItem = (GridEditFormItem)e.Item; |
editFormItem["SID"].Visible = false; |
editFormItem["Username"].Visible = false; |
} |
// insert |
else if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted == true) |
{ |
RadGrid3.MasterTableView.ClearEditItems(); |
} |
} |
I am trying to pass an ItemTemplate from an instance of a user control to a ListView ItemTemplate in a user control.
------------------- USER CONTROL .ASCX.CS -------------------
[TemplateContainer(typeof(ItemTemplateContainer))]
[PersistenceMode(PersistenceMode.InnerProperty)]
[TemplateInstance(TemplateInstance.Single)]
public ITemplate ItemTemplate { get; set; }
public class ItemTemplateContainer : Control, INamingContainer { }
protected void Page_Init()
{
if (ItemTemplate != null)
{
ItemTemplateContainer container = new ItemTemplateContainer();
ItemTemplate.InstantiateIn(container);
//THIS IS WHERE I AM STUCK - HOW DO I ASSIGN THE TEMPLATE FROM .ASPX TO THE RADLISTVIEW HERE?
}
else
//If no custom template specified load default
RadListView1.ItemTemplate = Page.LoadTemplate("/someDefault/Standard.ascx");
}
------------------- USER CONTROL INSTANCE .ASPX -------------------
<uc:MyControl ID="MyControl1" runat="server" >
<ItemTemplate>
...unique template...
</ItemTemplate>
</uc:MyControl>
Thanks,
Jeremy
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CalendarEventToolTip.ascx.cs" Inherits="CalendarEventToolTip" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<
telerik:RadScriptBlock
runat
=
"server"
ID
=
"RadScriptBlock1"
>
<
script
type
=
"text/javascript"
>
function ToolTipCommandItemClicking(sender, e) {
var btn = e.get_item();
var cmdName = btn.get_commandName();
e.set_cancel(true);
switch (cmdName) {
case "Export":
Export();
break;
case "Print":
break;
case "Mail":
break;
case "RequestInvite":
break;
}
}
function Export() {
var AjaxRequestObject = GetAjaxRequestObject("Export", "<%=this.GetType().ToString()%>");
AjaxRequestJson(AjaxRequestObject);
}
</
script
>
</
telerik:RadScriptBlock
>
<
telerik:RadToolBar
ID
=
'RadToolBar1'
runat
=
'server'
OnClientButtonClicking
=
'ToolTipCommandItemClicking'
Width
=
'100%'
>
<
Items
>
<
telerik:RadToolBarButton
CommandName
=
"Export"
ImageUrl
=
"ExportToOutlook"
ToolTip
=
"Export this event to Outlook"
/>
<
telerik:RadToolBarButton
CommandName
=
"Print"
ImageUrl
=
"Print"
ToolTip
=
"Print event details"
/>
<
telerik:RadToolBarButton
CommandName
=
"Mail"
ImageUrl
=
"Mail"
ToolTip
=
"Send an email message to event organiser"
/>
<
telerik:RadToolBarButton
CommandName
=
"RequestInvite"
ImageUrl
=
"RequestInvite"
ToolTip
=
"Request an invitation"
/>
</
Items
>
</
telerik:RadToolBar
>
<
div
style
=
"margin:5px 5px 0px 5px; font-size:12px; padding-bottom: 10px;"
>
<
div
style
=
"border-bottom:solid 1px #ccc;margin-bottom:9px;font-size:11px;"
>
Starting on: <
asp:Label
runat
=
"server"
ID
=
"StartingOn"
></
asp:Label
>
</
div
>
<
asp:Literal
runat
=
"server"
ID
=
"Subject"
></
asp:Literal
>
<
asp:Literal
runat
=
"server"
ID
=
"Description"
></
asp:Literal
>
</
div
>