This is a migrated thread and some comments may be shown as answers.

Change DisplayIndex of column of gridview

1 Answer 163 Views
GridView
This is a migrated thread and some comments may be shown as answers.
Chirag
Top achievements
Rank 1
Chirag asked on 16 May 2013, 06:36 AM
Hi to all 

we are using Telerik version = 2012.2.725.1050
Here i am face one gridview problem while change DisplayIndex of column of gridview 

Click on column, after when click on Left button focus and colum is moved perfectly but when we click on Right button colum is moved but focus is not moved focus must be moved. here i am add my sample project code 

thanks in advance for your help 

<UserControl x:Class="GridTest.MainPage"
    mc:Ignorable="d"
 
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />          
            <RowDefinition Height="50" />
        </Grid.RowDefinitions>
        <telerik:RadGridView HorizontalAlignment="Left" x:Name="grdFormList" VerticalAlignment="Top" Grid.Column="0" Grid.Row="0" />       
        <StackPanel Orientation="Horizontal" Grid.Column="0" Grid.Row="1">
            <Button Content="Left" Height="23" HorizontalAlignment="Left"  Name="btnleft"  Width="75"   Margin="5,0,0,0" Click="btnleft_Click" />
            <Button Content="Right" Height="23" HorizontalAlignment="Left"  Name="btnright"  Width="75" Margin="5,0,0,0" Click="btnright_Click" />
        </StackPanel>
    </Grid>
</UserControl>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.GridView;
using Telerik.Windows;
using System.ComponentModel;
using System.Globalization;
using System.Threading;
 
 
namespace GridTest
{
    public partial class MainPage : UserControl
    {
        public GridViewCellBase ClickedCell { get; set; }
 
        public MainPage()
        {
            InitializeComponent();
            this.grdFormList.AddHandler(GridViewCellBase.MouseLeftButtonDownEvent, new MouseButtonEventHandler(MouseDownOnCell), true);               
 
            grdFormList.Columns.Clear();
            for (Int32 attributelength = 0; attributelength < 10; attributelength++)
            {
                GridViewColumn textColumn = new GridViewColumn();
                // DataGridTextColumn textColumn = new DataGridTextColumn();
                textColumn.Header = string.Format("Column{0}", attributelength + 1);
                textColumn.UniqueName = string.Format("Uname{0}", attributelength + 1);
                textColumn.MinWidth = 5;
                textColumn.Width = 100;
                grdFormList.Columns.Add(textColumn);           
            }
        }
        private void MouseDownOnCell(object sender, MouseEventArgs args)
        {
            if (((UIElement)args.OriginalSource).ParentOfType<GridViewCellBase>() != null)
            {
                var aa = ((GridViewHeaderRow)(((GridViewCellBase)((UIElement)args.OriginalSource).ParentOfType<GridViewCellBase>()).ParentOfType<GridViewHeaderRow>())).Cells;
 
                for (int i = 0; i < aa.Count; i++)
                {
                    ((GridViewCellBase)aa[i]).Background = new SolidColorBrush(Colors.Transparent);
                }
 
                this.ClickedCell = null;
                this.ClickedCell = (GridViewCellBase)((UIElement)args.OriginalSource).ParentOfType<GridViewCellBase>();
 
                LinearGradientBrush brush = new LinearGradientBrush();
                brush.StartPoint = new Point(0.5, 0);
                brush.EndPoint = new Point(0.5, 1);
 
                GradientStop g1 = new GradientStop();
                g1.Color = Color.FromArgb(255, 227, 153, 54);
                brush.GradientStops.Add(g1);
 
                GradientStop g2 = new GradientStop();
                g2.Color = Color.FromArgb(255, 254, 211, 125);
                brush.GradientStops.Add(g2);
 
                ((GridViewCellBase)((UIElement)args.OriginalSource).ParentOfType<GridViewCellBase>()).Background = brush;
            }
        }
 
 
        private void btnleft_Click(object sender, RoutedEventArgs e)
        {
            if (ClickedCell != null)
            {
                if (ClickedCell.Column != null)
                {
                    int i = ClickedCell.Column.DisplayIndex;
                    if (i >= 1)
                    {
                        ClickedCell.Column.DisplayIndex = i - 1;
                    }
                }
            }
        }
 
        private void btnright_Click(object sender, RoutedEventArgs e)
        {
            if (ClickedCell != null)
            {
                if (ClickedCell.Column != null)
                {
                    int k = ClickedCell.Column.DisplayIndex;
                    if (k <= grdFormList.Columns.Count - 1)
                    {
                        ClickedCell.Column.DisplayIndex = k + 1;
                    }
                }
            }
        }
    }
}

1 Answer, 1 is accepted

Sort by
0
Chirag
Top achievements
Rank 1
answered on 20 May 2013, 01:44 PM
No one has an answer 
even admin of telerik also not reply
Tags
GridView
Asked by
Chirag
Top achievements
Rank 1
Answers by
Chirag
Top achievements
Rank 1
Share this question
or