Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
15
issue with the Infragistics WebDataGrid
posted

Hello Flocks,

When I apply formatting to an editable cell using the DataFormatString property inside the HTML markup and make a change to that cell during run-time, the row does not get marked as dirty. This prevents the RowUpdating event from firing, and hence the data does not get updated.

Is this an Infragistics bug? Can you suggest an alternate way of applying formatting to an editable cell?

Here is some of the relevant markup and code:

HTML:

<ig:WebDataGrid runat="server" ID="wdg" DataKeyFields="Id" Width="100%" AutoGenerateColumns="false" EnableDataViewState="true">
<Columns>
<igtbl2:BoundDataField Key="Id" DataFieldName="Id">
</igtbl2:BoundDataField>
<igtbl2:BoundDataField Key="Price" DataFieldName="Price" CssClass="EditableCell">
</igtbl2:BoundDataField>
</Columns>
<Behaviors>
<igtbl2:EditingCore BatchUpdating="true">
<Behaviors>
<igtbl2:CellEditing EditModeActions-MouseClick="Single" EditModeActions-EnableF2="true" EditModeActions-EnableOnActive="true" EditModeActions-EnableOnKeyPress="true" Enabled="true" CellEditingClientEvents-EnteringEditMode="wdg_CellEdit">
</igtbl2:CellEditing>
</Behaviors>
</igtbl2:EditingCore>
</Behaviors>
</ig:WebDataGrid>

Javascript:

function wdg_CellEdit(sender, eventArgs) {
var cellToEdit = eventArgs.getCell().get_column().get_key();
if (cellToEdit != "Price") {
eventArgs.set_cancel(true);
}
}

Thanks in Advance

  • 1660
    Offline posted

    Hello, 

    The RowUpdatingEvent is fired only when the user has changed the value of a cell and has interacted with another row or perform another operation that would involve the API of the grid, for example performing a sorting or a filtering operation, simply changing the value of a cell and then clicking on another cell in the same row or outside of the grid would not trigger RowUpdating. 

    To overcome this, the CellEditingClientEvents-ExitedEditMode event could be used, there you would need to access the EditingCore behavior and execute its commit method to commit the changes once the user has exited edit mode of the cell. It could be achieved with the following code: 

    function CellExitEditMode(sender, eventArgs) {
    			var grid = sender;
    			var editingCore = grid.get_behaviors().get_editingCore();
                editingCore.commit();		
    		}

    I have also created a small sample that uses the DataFormatString property and sets it to a column, however I wasn’t able to replicate your issue. 

    Please test the sample on your side and let me know if you need any further assistance. 

    Regards,
    Ivan Kitanov

    GridRowUpdatingDataFormatColumn.zip