I am trying to export filtered records from radgrid.But it was importing all the records those are in my grid.
Please let me know how can i achieve this.here is the code snippet.
string extension = "pdf";
rgEquipmentTracking.ElementExporting -= rgEquipmentTracking_ElementExporting;
rgEquipmentTracking.ElementExporting += rgEquipmentTracking_ElementExporting;
SaveFileDialog dialog = new SaveFileDialog()
{
DefaultExt = extension,
Filter = String.Format("{1} files (.{0})|*.{0}|All files (.*)|*.*", extension, "Pdf"),
FilterIndex = 1
};
var grid = new RadGridView()
{
ItemsSource = rgEquipmentTracking.ItemsSource,
RowIndicatorVisibility = Visibility.Collapsed,
ShowGroupPanel = false,
CanUserFreezeColumns = false,
IsFilteringAllowed = true,
AutoExpandGroups = true,
AutoGenerateColumns = false,
Margin = new Thickness(30, 30, 30, 30),
ShowColumnFooters = true,
EnableRowVirtualization = true
};
foreach (var column in rgEquipmentTracking.Columns.OfType<GridViewDataColumn>())
{
if (column.IsVisible == true && column.UniqueName != "ViewDetail")
{
var newColumn = new GridViewDataColumn();
newColumn.DataMemberBinding = new System.Windows.Data.Binding(column.UniqueName);
grid.Columns.Add(newColumn);
if (column.UniqueName == "ItemDate")
{
newColumn.UniqueName = "Sign Out Date";
newColumn.Header = "Sign Out Date";
newColumn.DataMemberBinding.StringFormat = "{0:dd/MM/yyyy}";
}
}
}
StyleManager.SetTheme(grid, StyleManager.GetTheme(grid));
if (dialog.ShowDialog() == true)
{
using (Stream stream = dialog.OpenFile())
{
grid.ExportToPdf(stream,
new GridViewPdfExportOptions()
{
ExportDefaultStyles = true,
ShowColumnFooters = true,
ShowColumnHeaders = true,
ShowGroupFooters = true,
AutoFitColumnsWidth = true,
PageOrientation = PageOrientation.Landscape
});
}
}
Hi,
it is easy to create GridView rows by button click. But is it possible to create rows for a month? I want to create
perhaps may. So i need 31 rows and in one column should be the Date from SO 01.05.2016 to TUE 31.05.2016?
Thanks a lot
Best Regards
Rene
So I'm trying to get the ScheduleView to allow a gridview and a listbox drop appointments (ScheduleItems) on it - and I can't seem to get the ConvertDraggedData to work properly because the ListBox sends through an IEnumerable<IOccurrence> and my GridView sends the raw item through (ScheduleItem).
So I rolled my own GridViewDragDropBehaviour class (as there isn't one built in for the GridView) and on the OnDragInitialize event, I'm using IDragPayload.SetData() to set the data to be the raw (ScheduleItem) item. The ListBox is using the built in ListBoxDragDropBehaviour class.
This is my ConvertDraggedData code:
public override IEnumerable<IOccurrence> ConvertDraggedData(object data)
{
if (DataObjectHelper.GetDataPresent(data, typeof(ScheduleItem), false))
{
return ((IEnumerable)DataObjectHelper.GetData(data, typeof(ScheduleItem), false)).OfType<IOccurrence>();
}
return base.ConvertDraggedData(data);
}
Obviously when items are dragged from the GridView the specified cast to IEnumerable doesn't work - but it works fine from the ListBox. How do I tweak the code so that it will work for both controls?
Hi,
I'm saving by PersistenceMaganer on my GridView but when I try to reload it missed converter and formatstring in some column.
When reloading it doesn't apply Converter called FuoriCorsoConverter and StringFormat of "Last Update" column, durthermore other column with StringFormat is correctly applyed instead.
Why?
Codes:
//Portions of code for saving
PersistenceManager manager =
new
PersistenceManager();
var streamGridView = manager.Save(
this
.DocumentHostGridView);
//[...]
//Portion of code for loading
//[...]
private
void
LoadPersonalizzazione()
{
//Personlizzazione del docking
var stream = ViewModel.CaricaPersonalizzazione(
this
.GetType().ToString());
//ref. UserControl.xaml.cs
if
(stream !=
null
)
this
.MainRadDocking.LoadLayout(stream);
//Personalizzazione della gridview principale
MemoryStream streamGridView = ViewModel.CaricaPersonalizzazioneControllo(
this
.GetType().ToString(),
this
.DocumentHostGridView.Name);
if
(streamGridView !=
null
)
{
streamGridView.Position = 0L;
PersistenceManager manager =
new
PersistenceManager();
manager.Load(
this
.DocumentHostGridView, streamGridView);
}
}
//[...]
XAML of columns
<
telerik:GridViewDataColumn
Header
=
"Last Update"
DataMemberBinding
=
"{Binding UltimoAggiornamento, StringFormat={}{0:dd/MM/yyyy}}"
/>
<
telerik:GridViewImageColumn
Header
=
"Out"
DataMemberBinding
=
"{Binding FuoriCorso, Converter={StaticResource FuoriCorsoConverter}}"
/>
<
telerik:RadTreeView
x:Name
=
"DeviceTreeView"
Margin
=
"2"
VerticalContentAlignment
=
"Top"
ItemsSource
=
"{Binding Recievers}"
IsExpandOnDblClickEnabled
=
"False"
>
<
telerik:RadTreeView.Resources
>
<
HierarchicalDataTemplate
DataType
=
"{x:Type ViewModel:RecieverViewModel}"
ItemsSource
=
"{Binding Children}"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<!-- <Image Width="16" Height="16" Margin="3,0" Source="Images\Region.png" /> -->
<
TextBlock
Text
=
"{Binding Id}"
>
<
TextBlock.InputBindings
>
<
MouseBinding
Gesture
=
"LeftDoubleClick"
Command
=
"{Binding Path=DataContext.OpenRecieverVisTabCommand, RelativeSource={RelativeSource AncestorType={x:Type TreeView}}}"
CommandParameter
=
"{Binding Id}"
/>
</
TextBlock.InputBindings
>
</
TextBlock
>
</
StackPanel
>
</
HierarchicalDataTemplate
>
<
HierarchicalDataTemplate
DataType
=
"{x:Type ViewModel:TripodViewModel}"
ItemsSource
=
"{Binding Children}"
>
<
StackPanel
Orientation
=
"Horizontal"
>
<!-- <Image Width="16" Height="16" Margin="3,0" Source="Images\State.png" /> -->
<
TextBlock
Text
=
"{Binding Id}"
>
<
TextBlock.InputBindings
>
<
MouseBinding
Gesture
=
"LeftDoubleClick"
Command
=
"{Binding Path=DataContext.OpenTripodVisTabCommand, RelativeSource={RelativeSource AncestorType={x:Type TreeView}}}"
CommandParameter
=
"{Binding Id}"
/>
</
TextBlock.InputBindings
>
</
TextBlock
>
</
StackPanel
>
</
HierarchicalDataTemplate
>
</
telerik:RadTreeView.Resources
>
<
telerik:RadTreeView.ItemContainerStyle
>
<!--
This Style binds a TreeViewItem to a TreeViewItemViewModel.
-->
<
Style
TargetType
=
"{x:Type telerik:RadTreeViewItem}"
>
<
Setter
Property
=
"IsExpanded"
Value
=
"true"
/>
<
Setter
Property
=
"IsSelected"
Value
=
"{Binding IsSelected, Mode=TwoWay}"
/>
<
Setter
Property
=
"FontWeight"
Value
=
"Normal"
/>
<
Style.Triggers
>
<
Trigger
Property
=
"IsSelected"
Value
=
"True"
>
<
Setter
Property
=
"FontWeight"
Value
=
"Bold"
/>
</
Trigger
>
</
Style.Triggers
>
</
Style
>
</
telerik:RadTreeView.ItemContainerStyle
>
</
telerik:RadTreeView
>
I am trying to default my FontSize to 8 and FontFamily to Arial, by doing:
richTextBox.FontFamily =
New
FontFamily(
"Arial"
)
richTextBox.FontSize = 10.67
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><
html
xmlns
=
"http://www.w3.org/1999/xhtml"
><
head
><
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/><
title
>Untitled</
title
><
style
type
=
"text/css"
>
p { text-indent: 0pt;padding: 0px 0px 0px 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 12px;margin-left: 0px;text-align: left;font-family: 'Verdana';font-style: Normal;font-weight: normal;font-size: 16px;color: #000000; }
.defaultDocumentStyle { telerik-style-type: default;telerik-style-name: defaultDocumentStyle;font-family: 'Arial';font-style: Normal;font-weight: normal;font-size: 10.67px;margin-bottom: 0px; }
.p_DEC438A7 { telerik-style-type: local; }
.s_DEC438A7 { telerik-style-type: local; }
</
style
></
head
><
body
><
p
class
=
"p_DEC438A7"
><
span
class
=
"s_DEC438A7"
>Try again, do i get to save Arial 8?</
span
></
p
></
body
></
html
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><
html
xmlns
=
"http://www.w3.org/1999/xhtml"
><
head
><
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=utf-8"
/><
title
>Untitled</
title
><
style
type
=
"text/css"
>
p { text-indent: 0pt;padding: 0px 0px 0px 0px;margin-top: 0px;margin-right: 0px;margin-bottom: 12px;margin-left: 0px;text-align: left;font-family: 'Verdana';font-style: Normal;font-weight: normal;font-size: 16px;color: #000000; }
.defaultDocumentStyle { telerik-style-type: default;telerik-style-name: defaultDocumentStyle;font-family: 'Arial';font-style: Normal;font-weight: normal;font-size: 10.67px;margin-bottom: 0px; }
.p_DEE65F0 { telerik-style-type: local;margin-top: 0px;margin-right: 0px;margin-bottom: 12px;margin-left: 0px;text-align: left; }
.s_8905ECE5 { telerik-style-type: local;font-family: 'Arial';font-style: Normal;font-weight: normal;font-size: 10.67px;color: #000000; }
.s_9FFAD006 { telerik-style-type: local;font-family: 'Verdana';font-style: Normal;font-weight: normal;font-size: 16px;color: #000000; }
</
style
></
head
><
body
><
p
class
=
"p_DEE65F0"
><
span
class
=
"s_8905ECE5"
>Try again, do i get to save Arial 8?</
span
><
span
class
=
"s_9FFAD006"
/></
p
></
body
></
html
>
I have an app that runs on a touchscreen and I am trying to capture the GotTouchCaptureEvent so that I can display the onscreen keyboard when the textbox is touched. It worked fine for a TextBox, but I am converting to RadMaskedTextInput controls to take advantage of the input masking and input validation. The event is fired from the TextBoxes (it works as desired if I change RadTouchTextBox to derive from TextBox), but not from the RadMaskedTextInput controls. The GotFocus and the LostKeyboardFocusEvent both work fine.
Here is the code:
ViewModel:
public class RadTouchTextBox : RadMaskedTextInput
{
/// <summary>
/// TextBox class with event handlers
/// </summary>
public RadTouchTextBox()
{
this.GotFocus += TextBox_GotFocus;
this.GotTouchCapture += TextBox_GotTouchCapture;
this.LostKeyboardFocus += TextBox_LostKeyboardFocusEvent;
}
private static void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
(sender as TextBox)?.SelectAll();
}
private static void TextBox_GotTouchCapture(object sender, RoutedEventArgs e)
{
try
{
Process.Start(@"c:\Program Files\Common Files\microsoft shared\ink\tabtip.exe");
}
catch
{
// if the tabtip display fails for any reason, do nothing.
}
}
private static void TextBox_LostKeyboardFocusEvent(object sender, RoutedEventArgs e)
{
Process[] processlist = Process.GetProcesses();
foreach (Process process in processlist)
{
if (process.ProcessName == "TabTip")
{
try
{
process.Kill();
}
catch
{
// if killing the process fails, ignore
}
break;
}
}
}
public string ServerPath
{
get { return GetProperty<string>(); }
set { SetProperty(value); }
}
xaml:
<DockPanel>
.
.
.
<RadTouchTextBox Width="300" Margin="5" FontSize="24"
Value="{Binding ServerPath, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, ValidatesOnExceptions=True}"
</DockPanel>
Any help is appreciated.
George
Hi, I have a gridview that can have configurable colums. Some of them use the default template, but others not. I have a problem with the ones that need to show icons.
Here is a sample of a datatemplate of a GridViewCell:
<
DataTemplate
x:Key
=
"IconFlagsCellTemplate"
>
<
StackPanel
Name
=
"IconFlagsCellTemplate"
Orientation
=
"Horizontal"
DataContext
=
"{Binding Blockings, Converter={StaticResource IconFlagsConverter}}"
>
<
Image
Source
=
"{StaticResource BlockingTechnicalOffice16x16}"
Visibility
=
"{Binding TechnicalOffice, Converter={StaticResource Boolean2VisibilityConverter}}"
/>
</
StackPanel
>
</
DataTemplate
>
This works ok. The problem comes, for example, when I try to assing a tooltip:
<
DataTemplate
x:Key
=
"IconFlagsCellTemplate"
>
<
StackPanel
Name
=
"IconFlagsCellTemplate"
Orientation
=
"Horizontal"
DataContext
=
"{Binding Blockings, Converter={StaticResource IconFlagsConverter}}"
>
<
Image
Source
=
"{StaticResource BlockingTechnicalOffice16x16}"
ToolTip
=
"{lex:Loc BudgetBlockingTooltip_TECHNICAL_OFFICE}"
Visibility
=
"{Binding TechnicalOffice, Converter={StaticResource Boolean2VisibilityConverter}}"
/>
</
StackPanel
>
</
DataTemplate
>
I receive the next error when I scroll horizontally and the cell is going out of scope, the moment that I think the control will recycle the cell:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.FrameworkElement', AncestorLevel='1''. BindingExpression:Path=Parent; DataItem=null; target element is 'StackPanel' (Name='IconFlagsCellTemplate'); target property is 'Parent' (type 'DependencyObject')
Also this produces that the horizontal scroll pauses a little bit when giving those errors, causing a notieceable visual delay.
But there is more. I need the image to be wrapped into a button, as I need to add a contextual menu to the button and some triggers, but this also produces the avobe error, no matter if there is tooltip or not. Fortunately, if instead of the button I put a ContentControl, but not tooltip, there is no problem as well.
I need, though, both tooltip and custom menu. And also there is need to keep into account that there will not be only an icon. There could be any number of icons, that will be shown or not depending on some ViewModel condition, as you can see with the bindings.
Hope anybody could help me by providing a working solution, as the client is complaining about the scrolling issue. Meanwhile I'll try to test other ways of doing things.
Thanks in advance.
David.
I am using MVVM to display a busy indicator. If I tell the indicator to show in an async on click event in code behind it shows up. However when I have my view model set the exact same property to true from a command it never shows up.
<
telerik:RadBusyIndicator
Name
=
"LoggingInBusyIndicator"
BusyContent
=
"Logging In"
IsBusy
=
"{Binding ShowLoginIndicator}"
DisplayAfter
=
"0"
>
<!--Button code inside of grid-->
</
telerik:RadBusyIndicator
>
private async void InstructorLoginButton_Click(object sender, RoutedEventArgs e)
{
MainMenuViewModel pageViewModel = (this.DataContext as MainMenuViewModel);
pageViewModel.ShowLoginIndicator = true;
try
{
//Do login stuff
}
catch (UserLoginException ule)
{
pageViewModel.SetInstructorLoginError(ule.Message);
}
pageViewModel.ShowLoginIndicator = false;
}
View Model Code the indicator never shows but if I remove the async call it shows up.
private RelayCommand studentLoginCommand;
public RelayCommand StudentLonginCommand
{
get
{
return studentLoginCommand = studentLoginCommand ?? new RelayCommand(async() =>
{
ShowLoginIndicator = true;
bool isStudentloggedIn = await LoginStudent();
if (isStudentloggedIn)
{
//Handle login
ShoLoginIndicator=false;
}
else
{
ShowLoginIndicator = false;
}
});
}
}
Hi,
this is the strange behavior:
I have a RadGridView its ItemSource setted with a VirtualQueryableCollectionView.
User set a filter and then export, I use this method:
public
static
void
ExportToExcel(RadGridView p_GridView)
{
if
(p_GridView ==
null
)
return
;
var view = p_GridView.ItemsSource
as
VirtualQueryableCollectionView;
int
loadSize = view.LoadSize;
view.LoadSize = p_GridView.Items.TotalItemCount;
string
extension =
"xlsx"
;
SaveFileDialog dialog =
new
SaveFileDialog()
{
DefaultExt = extension,
Filter = String.Format(
"{1} files (*.{0})|*.{0}|All files (*.*)|*.*"
, extension,
"Excel"
),
FilterIndex = 1
};
if
(dialog.ShowDialog() == DialogResult.OK)
{
using
(Stream stream = dialog.OpenFile())
{
p_GridView.ElementExportingToDocument += P_GridView_ElementExportingToDocument;
p_GridView.ExportToXlsx(stream,
new
GridViewDocumentExportOptions()
{
ShowColumnFooters =
true
,
ShowColumnHeaders =
true
,
ShowGroupFooters =
true
});
}
System.Diagnostics.Process.Start(dialog.FileName);
}
view.LoadSize = loadSize;
}
Sometimes it exports with first row of sheet dirty, because in first row there isn't columns header, but a row that does not belong to the collection (filtered by user).
PS: Normally, the first times export correctly header row (columns label), after several times appears that showed in SequenceExport.PNG