Replies
Hello,
Thank you for the reply.
That would happen because the two machines have different service releases of 11.2 installed. Yours have version 2010 installed and the other machine has 2135. 2135 is the latest service release for 11.2, so I would suggest to upgrade your version to it. This well you will be working on the latest version for 11.2 and you will have the same version as your colleagues. You can find how to download the latest service release from this link:
http://www.infragistics.com/community/forums/t/29398.aspx
Please let me know if you have any additional questions.
Normal
0
false
false
false
EN-US
ZH-CN
LAO
Hello,
Thank you for posting in our forums.
The MissingMethodException happens when the application is deployed, the dlls it is referencing are from an older version than the ones that were used when the application was compiled. Make sure that the latest assemblies are deployed and no duplicated older assemblies are hiding in certain folders. Your best bet would be to delete every built item and rebuild/redeploy the entire solution. Also make sure that the old version of the references are not lingering in the GAC.
Please let me know if you have any additional questions.
Hi Bhushan,
I am glad that your CreationFilter is working properly now.
As for the difference between the Update, Invalidate and Refresh methods: The
Invalidate method
invalidates the whole control, making sure that it will be redrawn on the next paint message. The
Update method
forces a synchronous redraw of the control’s invalidated areas. The
Refresh method
invalidates the control and forces redrawing of the control. It is equal to first calling the Invalidate method and then calling the Update method immediately after that.
There is no difference between grid.Show()/grid.Hide() and grid.Visible = true/grid.Visible = false. In fact what the methods do is that they set the Visible property to true or false.
Hi Bhushan,
Thank you for posting in our forums.
The InitializeLayout isn’t called on the Show method. In fact it is impossible to be called there, since the Show method is part of the Control class created by Microsoft and InitializeLayout event is defined on the UltraGrid class by us. In order to raise the event in the Show method we will need to override the Control method and this simply isn’t the case. It is called when the data source is provided or changed.
Anyway, it seems that there is something in your custom implementation that is causing the issues in your case. In order to assist you further on all this I would need a small sample that demonstrates this issue. Once I have the sample I will be glad to assist you further on this.
Hi Bhushan,
Thank you for posting in our forums.
-
For the fixed headers, if they aren’t working, you probably need to set the UseFixedHeaders property of the DisplayLayout to true:
this.ultraGrid1.DisplayLayout.UseFixedHeader = true;
-
For the Header color it is probably overridden by the style that the header uses. In order to override this use the following line:
this.ultraGrid1.DisplayLayout.Override.HeaderStyle = HeaderStyle.Standard;
-
As for the CreationFilter, there really isn’t a way for me to know what is going on, unless I see your application. Most probably there is some issue in your CreationFilter, but without seeing it there is now way to know exactly what.
-
What do you mean by “Is there a way to fire InitializeLayout on purpose”? The event is fired when the grid is provided with a data source. If you want to call the code inside it multiple time, encapsulate the code inside the event in a method and then call the method.
Please let me know if you have any additional questions.
Hi Jayamanickam,
Thank you for posting in our forums.
You can use the AddNewBox feature of the grid in order to achieve this functionality. It allows adding new rows to the selected row. For more information about this feature, please follow this link:
http://help.infragistics.com/Help/Doc/WinForms/2012.2/CLR4.0/html/Infragistics4.Win.UltraWinGrid.v12.2~Infragistics.Win.UltraWinGrid.UltraGridLayout~AddNewBox.html
Note that in order for the AddNewBox to be able to add a new row your underlying data source should be able to support this. This means that if you are using a List<T>, the class that represents the parent band should have another List<T> property where T would be the class that represent the child band. If you are using DataSet you should have DataTable which represents the child band.
I have attached a small sample which demonstrates this suggestion.
Please let me know if you have any additional questions.
Hi,
Thank you for the reply.
InitializeRow is the only event that fires if a value in the underlying data source has changed. The other events related to updating the data in the grid, like BeforeRowInsert, CellChanged, etc., are fired only if the interaction happens through the grid, not through the data source. So in order to achieve your requirement you will have to use the IntializeRow event and in order to know which cell was changed you need to track it through the underlying data source. For this you can use the ColumnChanging event of the DataTable bound to the grid. In that case you will need to filter only the changes you need to reflect in the actual grid, but as for performance, I don’t believe it will be that taxing as this is simply an additional event.
Please let me know if you have any additional questions.