Hi,
I have an UltraWebGrid with a column "Delete", column type = Infragistics.WebUI.UltraWebGrid.ColumnType.Button. When the user clicks in the button, I delete the row (from DB, so it is server side). I want to add a confirmation message to ask to the user for confirmation before deleting the row. I want to do it in the client-side. I tried using AJAX but I didn't find the way to use it in UltraWebGrid. Also, I tried using the DisplayLayout.ClientSideEvents.CellClickHandler and others properties but I couldn't solve my problem.
(Note: I have the UltraWebGrid inside a WebAsyncRefreshPanel)
Thanks
Regards,Fernando
The easiest way would be to add a confirm message to your button click event handler on the client-side. Basically cancel the button-click if !confirm("are you sure you want to delete this row").
Posting back and forth the the server to accomplish this is a bit more complicated. It also causes some unnecesary traffic so it may effect server performance. But if you really must handle this on the server, you can use the before row deleted event on the serverside. Cancel the event so that the grid does not perform the delete. Instead, make a panel visible which asks about the delete and has 2 buttons. You should encode the row id into the commandtext for the button, and then on the button event delete the appropriate row.
-Tony
Any thoughts on how to handle when the server-side deletion attempt fails (all still as grid within webasynch panel)?
I'm thinking of this sequence of events:
1. User presses delete button client-side to delete row - gets prompted to confirm and they say yes. Delete the row client-side to trigger server-side postback.
2. In server-side delete row event handler, attempt to delete row fails.
3. Now back to the client but the row's gone - what do we do?
Basically is there any way to handle this using infragistics technology?
Samuel,
You control the underlying data which the grid is bound to, which means you have the final say over what data gets deleted and what data remains. You can use the DeleteRow event to handle this scenario. Basically, if you remove the row from your backend data, it is permanently deleted. If you chose not to remove the row from your backend data, it will not be deleted - upon re-binding the webgrid to the datasource, the client-side deleted row will remain.
Hope this helps,
Scratch that question- must not have been thinking straight yesterday. This is the sequence I should be using:
1. User presses delete button client-side to delete row - gets prompted to confirm and they say yes. Button click event triggers server-side postback.
2. In server-side delete button click event handler, attempt to delete row succeeds: delete row from grid; attempt fails: do not delete row from grid. In either case send appropriate response back to client.