| 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><asp:TextBox ID="ProductReferenceTextBox" runat="server" Text='<%#Bind("ProductReference") %>' MaxLength="8" AutoPostBack="true" OnTextChanged="ProductReferenceTextBox_TextChanged" /><t:RadInputManager ID="MainInputManager" runat="server"> <t:TextBoxSetting BehaviorID="ProductReferenceBehavior" Validation-Method="ValidateProductCode" Validation-Location="ValidationServices/ProductService.asmx" Validation-ValidateOnEvent="All" Validation-IsRequired="true" />protected void ProductReferenceTextBox_TextChanged(object Sender, EventArgs E){TextBox oSender = (TextBox)Sender;if (IocContainer.ProductDao.Exists(oSender.Text)){ Product eProduct = IocContainer.ProductDao.GetProduct(oSender.Text); GridDataInsertItem oContainer = (GridDataInsertItem)oSender.NamingContainer; Label oLabel = (Label)oContainer.Controls[5].Controls[0]; oLabel.Text = eProduct.StockUnit; } }<telerik:RadScheduler ID="calTaskDisplay" runat="server" DataEndField="EndDate" DataKeyField="TaskId" DataStartField="EndDate" DataSubjectField="TaskName" OnAppointmentCreated="calTaskDisplay_AppointmentCreated" OnDataBound="calTaskDisplay_DataBound" AllowDelete="False" AllowEdit="False" SelectedView="MonthView" DayStartTime="09:00:00" DisplayDeleteConfirmation="False" EditFormDateFormat="d/M/yyyy" EnableAdvancedForm="False" EnableViewState="False" FirstDayOfWeek="Monday" LastDayOfWeek="Friday" WorkDayEndTime="17:00:00" EnableCustomAttributeEditing="true" CustomAttributeNames="status" WorkDayStartTime="09:00:00" OnAppointmentDataBound="calTaskDisplay_AppointmentDataBound"> <DayView DayStartTime="09:00:00" ShowHoursColumn="False" WorkDayEndTime="17:00:00" /> <WeekView DayStartTime="09:00:00" WorkDayStartTime="09:00:00" WorkDayEndTime="17:00:00" /> <AppointmentTemplate> <%#Eval("Subject")%> <input type="text" id="lblStatus" visible="false" title='<%# Eval("Status") %>' /> </AppointmentTemplate> </telerik:RadScheduler>Page_Load(){List<ScheduledTasks> loOtherTasks = loClient.GetScheduledTasks(Session["UserId"].ToString()); calTaskDisplay.DataSource = loOtherTasks; calTaskDisplay.DataBind();}calTaskDisplay_AppointmentDataBound(object sender, SchedulerEventArgs e){ switch (e.Appointment.Attributes["Status"]) { case "Pending": e.Appointment.BackColor = System.Drawing.Color.Red; break; case "pending": e.Appointment.BackColor = System.Drawing.Color.Red; break; case "Complete": e.Appointment.BackColor = System.Drawing.Color.Green; break; case "complete": e.Appointment.BackColor = System.Drawing.Color.Green; break; case "Over due": e.Appointment.BackColor = System.Drawing.Color.Red; break; case "over due": e.Appointment.BackColor = System.Drawing.Color.Red; break; case "Started": e.Appointment.BackColor = System.Drawing.Color.Blue; break; case "started": e.Appointment.BackColor = System.Drawing.Color.Blue; break; default: break;}calTaskDisplay_DataBound(object sender, EventArgs e){foreach (ResourceType resType in calTaskDisplay.ResourceTypes) { resType.AllowMultipleValues = false; }}