or
using System;using System.Drawing;using System.IO;using System.Web.UI;using System.Web.UI.HtmlControls;using CRD.LiveCalendars.Helpers;using CRD.LiveCalendars.Models;using CRD.LiveCalendars.Providers;using Telerik.Web.UI;using System.Web.UI.WebControls;namespace CRD.LiveCalendars{ public partial class LiveCalendar : System.Web.UI.UserControl { public ViewTabs DefaultViewTab { get; set; } public string ExchangeServerName { get; set; } public string ExchangeMailbox { get; set; } public string UserName { get; set; } public string UserDomain { get; set; } public string UserPass { get; set; } public bool ShowViewDay { get; set; } public bool ShowViewWeek { get; set; } public bool ShowViewMonth { get; set; } public int CalendarWidth { get; set; } int dayStartHour { get; set; } public int DayStartHour { get { if (dayStartHour > 0) return dayStartHour; else return 9; } set { dayStartHour = value; } } int dayStartMinute { get; set; } public int DayStartMinute { get { if (dayStartMinute > 0) return dayStartMinute; else return 0; } set { dayStartMinute = value; } } int dayEndHour { get; set; } public int DayEndHour { get { if (dayEndHour > 0) return dayEndHour; else return 17; } set { dayEndHour = value; } } int dayEndMinute { get; set; } public int DayEndMinute { get { if (dayEndMinute > 0) return dayEndMinute; else return 0; } set { dayEndMinute = value; } } protected void Page_Init(object sender, EventArgs e) { string serverPath = string.Format("http://{0}/EWS/Exchange.asmx", ExchangeServerName); ExchangeProvider provider; try { provider = new ExchangeProvider(serverPath, UserName, UserPass, UserDomain, ExchangeMailbox); } catch (Exception) { provider = null; } if (provider == null) { RadScheduler1.Visible = false; DisplayError(); } else { RadScheduler1.Provider = provider; } } private void DisplayError() { } protected void Page_Load(object sender, EventArgs e) { RadScheduler1.AppointmentDataBound += new Telerik.Web.UI.AppointmentDataBoundEventHandler(RadScheduler1_AppointmentDataBound); RadScheduler1.AppointmentCreated += new AppointmentCreatedEventHandler(RadScheduler1_AppointmentCreated); if (!Page.IsPostBack) SetupCalendar(); SetupWebResources(); } private void SetupWebResources() { HtmlLink lnkCss = new HtmlLink(); lnkCss.Attributes.Add("media", "screen"); lnkCss.Attributes.Add("type", "text/css"); lnkCss.Attributes.Add("rel", "Stylesheet"); ////Get the name of the Web Resource. String resourceName = "CRD.LiveCalendars.assets.styles.LiveCalendar.css"; ////Get the type of the class. Type resourceType = typeof(CRD.LiveCalendars.LiveCalendar); //// Get a ClientScriptManager reference from the Page class. ClientScriptManager cs = Page.ClientScript; lnkCss.Href = cs.GetWebResourceUrl(resourceType, resourceName); Page.Header.Controls.Add(lnkCss); Page.Header.Controls.AddAt(0, lnkCss); } private void SetupCalendar() { // show only tabs provided in xml, and only if there is more than one option RadScheduler1.DayView.UserSelectable = ShowViewDay; RadScheduler1.WeekView.UserSelectable = ShowViewWeek; RadScheduler1.MonthView.UserSelectable = ShowViewMonth; // there must always be at least one ViewType. the method that parses the xml settings returns "WeekView" if nothing else is provided. RadScheduler1.SelectedView = (SchedulerViewType)Enum.Parse(typeof(SchedulerViewType), DefaultViewTab.ToString()); RadScheduler1.TimelineView.UserSelectable = false; RadScheduler1.EnableDatePicker = false; //RadScheduler1.TimeZoneOffset = new TimeSpan(-7, 0, 0); //RadScheduler1.TimeZoneOffset = new TimeSpan(-8, 0, 0); RadScheduler1.DayStartTime = new TimeSpan(DayStartHour, DayStartMinute, 0); RadScheduler1.DayEndTime = new TimeSpan(DayEndHour, DayEndMinute, 0); RadScheduler1.Width = CalendarWidth; } void RadScheduler1_AppointmentDataBound(object sender, Telerik.Web.UI.SchedulerEventArgs e) { Appointment a = e.Appointment; a.BackColor = ColorTranslator.FromHtml(AppointmentHelpers.ColourFromDescription(a.Description)); a.Attributes.Add("content", AppointmentHelpers.CleanUpDescription(a.Description)); a.CssClass = "apo"; // and "lighten the load" by resetting the heavy, MS-laden description to a text only description // I don't think description is actually used... but it *is* serialized out into JSON and embedded // in the page source a.Description = "";// AppointmentFormatters.StripHtml(a.Description); } void RadScheduler1_AppointmentCreated(object sender, AppointmentCreatedEventArgs e) { if (e.Appointment.Visible) { string id = e.Appointment.ID.ToString(); foreach (string domElementID in e.Appointment.DomElements) { Telerik.Web.UI.RadToolTip tt = new RadToolTip() { TargetControlID = domElementID, ShowEvent = ToolTipShowEvent.OnMouseOver, RelativeTo = ToolTipRelativeDisplay.Element, Text = BuildToolTipHtml(e.Appointment), IsClientID = true, ShowDelay = 0, AutoCloseDelay = 0 // popup continues to be displayed as long as moused over }; phDefaultHolder.Controls.Add(tt); } } } private string BuildToolTipHtml(Appointment appo) { string description = appo.Attributes["content"]; HtmlGenericControl div = new HtmlGenericControl("div"); div.Attributes.Add("class", "tooltip"); HtmlGenericControl divApoTitle = new HtmlGenericControl("div"); divApoTitle.Attributes.Add("class", "ToolTipAppointmentTitle"); divApoTitle.InnerHtml = appo.Subject; HtmlGenericControl divApoTimes = new HtmlGenericControl("div"); divApoTimes.Attributes.Add("class", "ToolTipAppointmentTimes"); divApoTimes.InnerHtml = string.Format("{0} - {1}", appo.Start.ToLocalTime().ToString("t"), appo.End.ToLocalTime().ToString("t")); HtmlGenericControl divApoDescription = new HtmlGenericControl("div"); divApoDescription.Attributes.Add("class", "ToolTipAppointmentDescription"); divApoDescription.InnerHtml = description; div.Controls.Add(divApoTitle); div.Controls.Add(divApoTimes); div.Controls.Add(divApoDescription); //div.InnerHtml = description; string result = string.Empty; using (StringWriter sw = new StringWriter()) { var writer = new System.Web.UI.HtmlTextWriter(sw); div.RenderControl(writer); result = sw.ToString(); writer.Close(); } return result; } }}Once again I cannot remember how i managed to submit support ticket, it's not obvious from the interface.. :(
So, I post a problem here.
Please, confirm if this is already fixed in the newest version of Telerik Controls otherwise would be great, if you fixed this ASAP...
If I use client-side binding and have two labels, responsible for displaying some entity fields within GridTemplateColumn and one of them corresponds to field "Name" - then another one, if it contains word "Name" in it, ignores field value and instead also shows "Name" field value! :(
<telerik:GridTemplateColumn HeaderStyle-CssClass='GridHeaderGreen la' ItemStyle-CssClass='la' HeaderText="Model" SortExpression="SVC2.CLUSTER_STATE.NAME"> <itemtemplate> <asp:Label ID="Name" runat="server" /> </itemtemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderStyle-CssClass='GridHeaderGreen la' ItemStyle-CssClass='la' HeaderText="Group Name" SortExpression="SVC2.CLUSTER_STATE.GROUPNAME"> <itemtemplate> <asp:Label ID="GroupName" runat="server" /> </itemtemplate> </telerik:GridTemplateColumn>{"d":[]} ) in this case I'd like to write something like 'No data records' to the first row/cell.
How can I do this using the client-side API?
Thx
<telerik:RadGrid ID="MyGrid" runat="server" AllowAutomaticInserts="false" AllowFilteringByColumn="true" AllowSorting="true" PageSize="15" ShowFooter="true" EnableLinqExpressions="true" OnUpdateCommand="MyGrid_UpdateCommand" OnItemDataBound="MyGrid_ItemDataBound" DataSourceID="MyLinqDataSource" > <PagerStyle Mode="NextPrevNumericAndAdvanced" /> <MasterTableView AutoGenerateColumns="false" EditMode="InPlace" AllowFilteringByColumn="true" DataKeyNames="Id" OverrideDataSourceControlSorting="true" Width="1700px" TableLayout="Fixed" CommandItemDisplay="Top" > <CommandItemTemplate> <asp:Button ID="SearchButton" runat="server" Text="Search" Width="100px" Height="2em" CommandName="<%=RadGrid.FilterCommandName %>" /> </CommandItemTemplate> <Columns> ... </Columns> </MasterTableView> <ClientSettings AllowColumnsReorder="true" > <Resizing AllowColumnResize="true" AllowResizeToFit="true" EnableRealTimeResize="true" /> </ClientSettings></telerik:RadGrid>Hello
Im trying to filter the radgrid with filtertemplate. the code look's like this
<telerik:GridTemplateColumn DataField="Obraz" Resizable="false" Visible="false" UniqueName="TemplateColumn" AllowFiltering="true"> <FilterTemplate> <telerik:RadComboBox ID="RadComboBoxCountry" DataTextField="Text" DataValueField="Obraz" Height="100px" AppendDataBoundItems="true" SelectedValue='<%# ((GridItem)Container).OwnerTableView.GetColumn("TemplateColumn").CurrentFilterValue %>' runat="server" OnClientSelectedIndexChanged="CountryIndexChanged"> <Items> <telerik:RadComboBoxItem Text="Bez filtra" value="1"/> <telerik:RadComboBoxItem Text="Pojedynczy skan" value="~/Ikony/Gify/Skan.png"/> <telerik:RadComboBoxItem Text="Multi skan" value="~/Ikony/Gify/SkanMulti.png"/> <telerik:RadComboBoxItem Text="Brak skanu" value="~/Ikony/Gify/BrakSkanu.png"/> <telerik:RadComboBoxItem Text="Bez filtra1" value=""/> </Items> </telerik:RadComboBox> <telerik:RadScriptBlock ID="RadScriptBlock3" runat="server"> <script type="text/javascript"> function CountryIndexChanged(sender, args) { var tableView = $find("<%# ((GridItem)Container).OwnerTableView.ClientID %>"); tableView.filter("Obraz", args.get_item().get_value(), "EqualTo"); } </script> </telerik:RadScriptBlock> </FilterTemplate> <ItemTemplate> <asp:Image ID="Image1" runat="server" ImageUrl="<%# bind('Obraz') %>" ForeColor="White" /> </ItemTemplate> <HeaderStyle Width="199px" /> <ItemStyle Width="199px" /> </telerik:GridTemplateColumn>