hello
i am face one problem regarding a filter and grouping in gridView
in my application grid column will generate dynamically as per the XML which is return from WCF Service
base on XML generate Column for grid and one list for assign as Source in radDataPager control
Please Help me as soon as possible it's urgent
My code
i am face one problem regarding a filter and grouping in gridView
in my application grid column will generate dynamically as per the XML which is return from WCF Service
base on XML generate Column for grid and one list for assign as Source in radDataPager control
Please Help me as soon as possible it's urgent
My code
<
UserControl
x:Class
=
"RadControlsSilverlightApp1.MainPage"
xmlns:telerik
=
"http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable
=
"d"
d:DesignWidth
=
"640"
d:DesignHeight
=
"480"
>
<
Grid
x:Name
=
"LayoutRoot"
>
<
StackPanel
Orientation
=
"Vertical"
>
<
telerik:RadGridView
x:Name
=
"FormsGrid"
Margin
=
"5,0,10,0"
CanUserFreezeColumns
=
"False"
AutoGenerateColumns
=
"False"
ScrollMode
=
"RealTime"
MinHeight
=
"300"
BorderThickness
=
"1,6,1,1"
telerik:StyleManager.Theme
=
"Office_Blue"
ScrollViewer.HorizontalScrollBarVisibility
=
"Visible"
ItemsSource
=
"{Binding PagedSource, ElementName=radDataPager1}"
ScrollViewer.VerticalScrollBarVisibility
=
"Auto"
SelectionChanged
=
"FormsGrid_SelectionChanged"
DataLoaded
=
"FormsGrid_DataLoaded"
LayoutUpdated
=
"FormsGrid_LayoutUpdated"
CanUserDeleteRows
=
"False"
CanUserInsertRows
=
"False"
IsFilteringAllowed
=
"True"
>
</
telerik:RadGridView
>
<
telerik:RadDataPager
Grid.Row
=
"1"
x:Name
=
"radDataPager1"
telerik:StyleManager.Theme
=
"Office_Blue"
PageSize
=
"15"
DisplayMode
=
"All"
IsTotalItemCountFixed
=
"True"
Margin
=
"5,0,10,0"
/>
</
StackPanel
>
</
Grid
>
</
UserControl
>
using
System;
using
System.Collections.Generic;
using
System.IO;
using
System.Linq;
using
System.Windows.Controls;
using
System.Windows.Data;
using
System.Xml;
using
System.Xml.Linq;
using
Telerik.Windows;
using
Telerik.Windows.Controls;
using
Telerik.Windows.Controls.GridView;
namespace
RadControlsSilverlightApp1
{
public
partial
class
MainPage : UserControl
{
Dictionary<
string
,
string
> selectedEntity =
new
Dictionary<
string
,
string
>();
public
MainPage()
{
InitializeComponent();
this
.FormsGrid.AddHandler(GridViewCellBase.CellDoubleClickEvent,
new
EventHandler<RadRoutedEventArgs>(OnCellDoubleClick),
true
);
BindGrid();
}
private
void
BindGrid()
{
string
myxml = @"<NewDataSet>
<Table><ID>1</ID><CheckboxCol>0</CheckboxCol><First_x0020_Name>ABC</First_x0020_Name><LastName>MNO</LastName><Contact_x0020_Number>1234567890</Contact_x0020_Number></Table>
<Table><ID>2</ID><CheckboxCol>0</CheckboxCol><First_x0020_Name>DEF</First_x0020_Name><LastName>PQR</LastName><Contact_x0020_Number>1234567890</Contact_x0020_Number></Table>
<Table><ID>6</ID><CheckboxCol>0</CheckboxCol><First_x0020_Name>GHI</First_x0020_Name><LastName>STU</LastName><Contact_x0020_Number>1234567890</Contact_x0020_Number></Table>
<Table><ID>9</ID><CheckboxCol>0</CheckboxCol><First_x0020_Name>JKL</First_x0020_Name><LastName>VWX</LastName><Contact_x0020_Number>4646464</Contact_x0020_Number></Table></NewDataSet>";
StringReader stream =
new
StringReader(myxml.ToString());
XmlReader reader = XmlReader.Create(stream);
XDocument myDoc =
new
XDocument();
myDoc = XDocument.Load(reader);
List<Dictionary<
string
,
string
>> listdict =
new
List<Dictionary<
string
,
string
>>();
Dictionary<
string
,
string
> elem =
new
Dictionary<
string
,
string
>();
FormsGrid.Columns.Clear();
FormsGrid.AutoGenerateColumns =
false
;
FormsGrid.IsFilteringAllowed =
true
;
if
(myDoc !=
null
&& myDoc.Elements().Count() > 0 && myDoc.Element(
"NewDataSet"
).Elements().Count() > 0)
{
int
columnCount = myDoc.Element(
"NewDataSet"
).Element(
"Table"
).Elements().Count();
string
columnName =
string
.Empty;
GridViewDataColumn dgtc =
new
GridViewDataColumn();
for
(
int
i = 0; i < columnCount; i++)
{
XElement element = myDoc.Element(
"NewDataSet"
).Element(
"Table"
).Elements().ElementAt(i);
dgtc =
new
GridViewDataColumn();
dgtc.MinWidth = 100;
dgtc.IsReadOnly =
true
;
dgtc.Width = GridViewLength.SizeToHeader;
if
(element.Name ==
"ID"
)
{
dgtc.IsVisible =
false
;
}
if
(element.Name ==
"CheckboxCol"
)
{
dgtc.IsVisible =
false
;
}
dgtc.Header = element.Name.ToString().Replace(
"_x0020_"
,
" "
).Replace(
"_x0028_"
,
" ("
).Replace(
"_x0029_"
,
") "
);
dgtc.DataMemberBinding =
new
Binding(element.Name.ToString().Replace(
"-"
,
" "
));
dgtc.DataMemberBinding.Source = element.Name;
indexingConverter convert =
new
indexingConverter();
Binding bind =
new
Binding { Converter = convert, ConverterParameter = element.Name };
dgtc.DataMemberBinding = bind;
dgtc.IsFilterable =
true
;
FormsGrid.Columns.Add(dgtc);
}
int
rowCount = myDoc.Element(
"NewDataSet"
).Elements().Count();
for
(
int
i = 0; i < rowCount; i++)
{
XElement element = myDoc.Element(
"NewDataSet"
).Elements().ElementAt(i);
string
[] values = element.Value.Trim().Split(
'\n'
);
elem =
new
Dictionary<
string
,
string
>();
for
(
int
j = 0; j < element.Elements().Count(); j++)
{
XElement ele = element.Elements().ElementAt(j);
elem.Add(ele.Name.ToString(), ele.Value.ToString());
}
listdict.Add(elem);
}
radDataPager1.Source =
null
;
radDataPager1.Source = listdict;
}
else
{
radDataPager1.Source =
null
;
radDataPager1.Source = listdict;
}
}
private
void
FormsGrid_SelectionChanged(
object
sender, SelectionChangeEventArgs e)
{
}
private
void
FormsGrid_DataLoaded(
object
sender, EventArgs e)
{
}
private
void
FormsGrid_LayoutUpdated(
object
sender, EventArgs e)
{
if
(selectedEntity !=
null
&& selectedEntity.Count > 0)
{
FormsGrid.SelectedItem = selectedEntity;
foreach
(Dictionary<
string
,
string
> item
in
this
.FormsGrid.Items)
{
if
(item[
"ID"
] == selectedEntity[
"ID"
])
{
var row = (GridViewRow)(
this
.FormsGrid.ItemContainerGenerator.ContainerFromItem(item));
if
(row !=
null
)
{
row.IsSelected =
true
;
}
}
}
}
}
private
void
OnCellDoubleClick(
object
sender, RadRoutedEventArgs args)
{
if
(FormsGrid.SelectedItem !=
null
)
{
Dictionary<
string
,
string
> dict = (Dictionary<
string
,
string
>)FormsGrid.SelectedItem;
selectedEntity = dict;
}
}
}
class
indexingConverter : IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
Dictionary<
string
,
string
> columnData = (Dictionary<
string
,
string
>)value;
return
columnData[parameter.ToString()];
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
}