or
public class HyperlinkCellElement : GridDataCellElement{ private RadLabelElement _headerLabel; private RadLabelElement _linkLabel; public HyperlinkCellElement(GridViewColumn column, GridRowElement row) : base(column, row) {} protected override Type ThemeEffectiveType { get {return typeof(GridDataCellElement); } } public override void Initialize(GridViewColumn column, GridRowElement row) { base.Initialize(column, row); _headerLabel.Text = column.Name; } protected override void CreateChildElements() { _headerLabel = new RadLabelElement(); _headerLabel.Font = new Font(Font, FontStyle.Bold); _headerLabel.Margin = new Padding(0, 2, 0, 0); _headerLabel.LabelText.AutoEllipsis = true; _headerLabel.LabelText.AutoSize = true; _headerLabel.LabelText.AutoSizeMode = RadAutoSizeMode.Auto; _headerLabel.LabelText.TextWrap = false; _linkLabel = new RadLabelElement(); _linkLabel.Font = new Font(Font, FontStyle.Underline); _linkLabel.MouseHover += (s, e) => { if (Cursor.Current == Cursors.Default) Cursor.Current = Cursors.Hand; }; _linkLabel.MouseLeave += (s, e) => { if (Cursor.Current == Cursors.Hand) Cursor.Current = Cursors.Default; }; _linkLabel.Margin = new Padding(0, 2, 0, 0); _linkLabel.LabelText.AutoEllipsis = true; _linkLabel.LabelText.AutoSize = true; _linkLabel.LabelText.AutoSizeMode = RadAutoSizeMode.Auto; _linkLabel.LabelText.TextWrap = false; this.Children.Add(_headerLabel); this.Children.Add(_linkLabel); _linkLabel.Click += new EventHandler(_label_Click); } void _label_Click(object sender, EventArgs e) { //TODO; } protected override void DisposeManagedResources() { _linkLabel.Click -= new EventHandler(_label_Click); base.DisposeManagedResources(); } protected override void SetContentCore(object value) { _linkLabel.Text = value.ToString(); } protected override SizeF ArrangeOverride(SizeF finalSize) { if (this.Children.Count == 2) { var label = this.Children[0]; var link = this.Children[1]; var labelWidth = Math.Min(finalSize.Width, label.DesiredSize.Width); var linkWidth = Math.Min(link.DesiredSize.Width, finalSize.Width - labelWidth); label.Arrange(new RectangleF( 0, (finalSize.Height / 2) - (label.DesiredSize.Height / 2), labelWidth, label.DesiredSize.Height)); link.Arrange(new RectangleF( label.Size.Width, (finalSize.Height / 2) - (link.DesiredSize.Height / 2), linkWidth, link.DesiredSize.Height)); } return finalSize; } public override bool IsCompatible(GridViewColumn data, object context) { return data is GridViewHyperlinkColumn && context is GridDataRowElement; }}Private Sub radSchedulerAppointmentsNavigator_ShowWeekendStateChanged(ByVal sender As Object, ByVal args As Telerik.WinControls.UI.StateChangedEventArgs) Handles radSchedulerAppointmentsNavigator.ShowWeekendStateChanged If TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerMonthView) Is Nothing Then TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerDayViewBase).RulerWidth = 43 TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerDayViewBase).DayCount = 1 TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerDayViewBase).AutoScrollToWorkTime = True Dim dtStart As DateTime = DateTime.Parse(GetOptionValue("WORKINGHOURS", "Start")) Dim tsStart As New TimeSpan(dtStart.Hour, dtStart.Minute, 0) Dim dtEnd As DateTime = DateTime.Parse(GetOptionValue("WORKINGHOURS", "End")) Dim tsEnd As New TimeSpan(dtEnd.Hour, dtStart.Minute, 0) TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerDayViewBase).WorkTime = New TimeInterval(tsStart, tsEnd) If RadRadioButtonGroup.ToggleState = Enumerations.ToggleState.On Then TryCast(Me.radSchedulerAppointments.SchedulerElement.ViewElement, SchedulerDayViewGroupedByResourceElement).ScrollToWorkHours() Else TryCast(Me.radSchedulerAppointments.ActiveView, SchedulerDayViewBase).RulerWidth = 45 TryCast(Me.radSchedulerAppointments.SchedulerElement.ViewElement, SchedulerDayViewElement).DataAreaElement.ScrollView.Value = Point.Empty TryCast(Me.radSchedulerAppointments.SchedulerElement.ViewElement, SchedulerDayViewElement).DataAreaElement.Table.ScrollToWorkHours() End If End If End Subusing System; using System.Collections.Generic; using System.Windows.Forms; namespace GridTest1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); List<Data> list = new List<Data>(); list.Add(new Data() { Value = "A" }); list.Add(new Data() { Value = "B" }); list.Add(new Data() { Value = "C" }); bindingSource1.DataSource = list; } private void btnChangeData_Click(object sender, EventArgs e) { List<Data> list = new List<Data>(); list.Add(new Data() { Value = "A" }); bindingSource1.DataSource = list; } } public class Data { public string Value { get; set; } } } 