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

Rad grid view problem?

1 Answer 105 Views
GridView
This is a migrated thread and some comments may be shown as answers.
sivakanth
Top achievements
Rank 1
sivakanth asked on 16 Feb 2011, 05:30 AM
Hello Telerik Team,
                               Yes.this is big paragraph but question is simple.I have some doupts in Gridview.In my last project master page contains 4 Business objets.
All are declared as Boolean only.So i am using Rad combo box.The field Names are NeedLoanPrint(Values are Yes\No),NeedDeliveryPrint(Yes\No),Close BS(Yes\No),PrintedType(Dos\Windows).

In my database also these are declared as BIT only.So these details are stored in database as true or false.But i want to display in radgridview the original format only.That means NeedLoanPrint,NeedDeliveryPrint,Close BS column values Yes or No only.
Same time Printed type column values Dos or Windows only.

I know its not possible directly.so i am using Converter.Here i created two converters.one is BooleanToYesNoConverter,another one BooleanToDosWindowsConverter.i have attached all in below.
This is my BooleanToYesNoConverter: 
  
class BooleanToYesNoConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object  parameter,   System.Globalization.CultureInfo culture)
        {
            string returnValue = string.Empty;
            if ((bool)value == true)
            {
                returnValue = "Yes";
                return (string)returnValue;
            }
            else
            {
                returnValue = "No";
                return (string)returnValue;
            }
        }
     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
}
This is my BooleanToDosWindowsconverter:
  
class BooleanToDosWindowsConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string returnName = string.Empty;
            if ((bool)value == true)
            {
                returnName = "Windows";
                return (string)returnName;
            }
            else
            {
                returnName = "Dos";
                return (string)returnName;
            }
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
}
After Converted  radgridview display nothing in that columns.so i am creating label inside DataTemplate:
<Meenakshi:GridViewDataColumn Header="Need Loan Print" Width="120">
   <Meenakshi:GridViewDataColumn.CellTemplate>
     <DataTemplate>
       <Label Content="{Binding NeedLoanPrint,Converter={StaticResource booleanToYesNoConverter}}"/>
     </DataTemplate>
   </Meenakshi:GridViewDataColumn.CellTemplate>
</Meenakshi:GridViewDataColumn>
if i create above method to all column its display fine.No mistakes.

In my project in future may come more field as Boolean Type.Whenever i won't create DataTemplate in XAML.So i am creating one class called as GridViewLabelColumn.After that i will use easily.
class GridViewLabelColumn : GridViewBoundColumnBase
    {
                public override FrameworkElement CreateCellElement(GridViewCell cell, object dataItem)
        {
            Label button = cell.Content as Label;
            if (button == null)
            {
                button = new Label();
                var valueBinding = new Binding(this.DataMemberBinding.Path.Path)
                {
                    Mode = BindingMode.OneTime,
                    Converter = this.DataMemberBinding.Converter
                };
                button.SetBinding(Button.ContentProperty, valueBinding);
            }
            return button;
        }
}
My XAML will:
<UserControl.Resources>
   <CustomControl:BooleanToYesNoConverter x:Key="booleanToYesNoConverter"/>
   <CustomControl:BooleanToDosWindowsConverter x:Key="booleanToDosWindowsconverter"/>
</UserControl.Resources>
  
<Meenakshi:RadGridView IsReadOnly="True" AutoGenerateColumns="False" Margin="12,411,12,12" Name="rgrdCompanyViewAll" MouseDoubleClick="rgrdCompanyViewAll_MouseDoubleClick">
            <Meenakshi:RadGridView.Columns>
<CustomControl:GridViewLabelColumn DataMemberBinding="{Binding Path=NeedLoanPrint,ElementName=NeedLoanPrint,Converter={StaticResource booleanToYesNoConverter }}" Header="Need Loan Print" Width="120"/>
                <CustomControl:GridViewLabelColumn DataMemberBinding="{Binding Path=NeedDeliveryPrint,ElementName=NeedDeliveryPrint,Converter={StaticResource booleanToYesNoConverter}}" Header="Need Delivery print" Width="120"/>
<CustomControl:GridViewLabelColumn  DataMemberBinding="{Binding Path=CloseBS,ElementName=CloseBS,Converter={StaticResource booleanToYesNoConverter}}" Header="Close BS" Width="120"/>
                <CustomControl:GridViewLabelColumn DataMemberBinding="{Binding Path=PrintedType,ElementName=PrintedType,Converter={StaticResource booleanToDosWindowsconverter}}" Header="Printed Type" Width="120"/>
        </Meenakshi:RadGridView.Col
</Meenakshi:RadGridView>
here is MY QUESTION:
         Everything is display fine.But the values are Changing everyseconds in radGridView.Example Printedtype Column Values originally Dos or Windows only.But it display one row Dos next row No(Its come from another column value).after few seconds Dos will change Yes or No respective their Boolean Value.

NeedloanPrint column values also comes Dos and Windows.Everysecond it change.

where i make mistake here?
               pls give me some suggestion.

1 Answer, 1 is accepted

Sort by
0
Pavel Pavlov
Telerik team
answered on 21 Feb 2011, 02:20 PM
Hello sivakanth,

I can not reproduce this erroneous behavior. It seems something specific to your implementation.
If I had your project , I would gladly perform a debugging session over it to see what may be causing the trouble and provide a descent workaround.

Kind regards,
Pavel Pavlov
the Telerik team
Registration for Q1 2011 What’s New Webinar Week is now open. Mark your calendar for the week starting March 21st and book your seat for a walk through all the exciting stuff we ship with the new release!
Tags
GridView
Asked by
sivakanth
Top achievements
Rank 1
Answers by
Pavel Pavlov
Telerik team
Share this question
or