Hello,
I have a WebDataGrid with BatachUpdating mode enable. I have implemented RowAdding, RowUpdating and RowDeleting Event on server side.
RowUpdating & RowDeleting events are fired when rows are deleted/updated in WebDataGrid and page is posted back via Submit Button.
RowAdding event is not firing even if there are new rows added within the grid.
<asp:Content ID="Content1" ContentPlaceHolderID="cph1" Runat="Server"> <uc1:PageHeader ID="PageHeader1" runat="server" Title="Manage System Dynamic Pages" /> <ig:WebDataGrid ID="uwgPages" runat="server" Width="100%" AutoGenerateColumns="false" DataKeyFields="ID" EnableAjax="false" OnInitializeRow="UwgPages_InitializeRow" OnRowAdding="UwgPages_RowAdding" OnRowUpdating="UwgPages_RowUpdating" OnRowsDeleting="UwgPages_RowsDeleting"> <Columns> <ig:BoundDataField DataFieldName="ID" Key="ID" Width="5%"> <Header Text="ID"></Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="ShortName" Key="ShortName" Width="15%"> <Header Text="Short Name"></Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Title" Key="Title" Width="49%"> <Header Text="Title"></Header> </ig:BoundDataField> <ig:BoundCheckBoxField DataFieldName="isPublic" Key="isPublic" Width="10%" DataType="System.Boolean"> <Header Text="isPublic"></Header> </ig:BoundCheckBoxField> <ig:BoundCheckBoxField DataFieldName="isActive" Key="isActive" Width="10%" DataType="System.Boolean"> <Header Text="isActive"></Header> </ig:BoundCheckBoxField> <ig:BoundDataField DataFieldName="ID" Key="View" Width="8%"> <Header Text="view"></Header> </ig:BoundDataField> <ig:BoundDataField DataFieldName="ID" Key="Edit" Width="8%"> <Header Text="Edit"></Header> </ig:BoundDataField> </Columns> <Behaviors> <ig:Activation Enabled="true"></ig:Activation> <ig:RowSelectors></ig:RowSelectors> <ig:Selection CellClickAction="Row" RowSelectType="Multiple"/> <ig:EditingCore BatchUpdating="true"> <Behaviors> <ig:RowAdding Enabled="true"> <ColumnSettings> <%--<ig:RowAddingColumnSetting ColumnKey="ID" ReadOnly="true" />--%> <ig:RowAddingColumnSetting ColumnKey="View" ReadOnly="true" /> <ig:RowAddingColumnSetting ColumnKey="Edit" ReadOnly="true" /> </ColumnSettings> </ig:RowAdding> <ig:RowDeleting></ig:RowDeleting> <ig:CellEditing> <EditModeActions EnableF2="true" EnableOnActive="true" MouseClick="Double" /> <ColumnSettings> <%-- <ig:EditingColumnSetting ColumnKey="ID" ReadOnly="true" />--%> <ig:EditingColumnSetting ColumnKey="View" ReadOnly="true" /> <ig:EditingColumnSetting ColumnKey="Edit" ReadOnly="true" /> </ColumnSettings> </ig:CellEditing> </Behaviors> </ig:EditingCore> <ig:ColumnResizing></ig:ColumnResizing> <ig:Sorting Enabled="true"></ig:Sorting> </Behaviors> </ig:WebDataGrid> <fieldset style="padding: 6px 10px; margin: 0 auto; background-color: #F5F5F5; text-align: center; width: 250px; margin-top:15px;"> <asp:Button ID="btnSubmit" runat="server" Text=" Save " OnClick="BtnSubmit_Click" /> <asp:Button ID="btnCancel" runat="server" Text="Restore" OnClick="BtnCancel_Click" /> </fieldset></asp:Content>
/// <summary> /// This is page load event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { CommonFunctions.AddActionConfirmation(this.btnSubmit, null, true, Enumerators.UILanguage.English); } uwgPages.DataSource = cntDynamicPage.ListDynamicPage(); uwgPages.DataBind(); }
/// <summary> /// This is grid's Initialize Row event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void UwgPages_InitializeRow(object sender, Infragistics.Web.UI.GridControls.RowEventArgs e) { string id = e.Row.Items.FindItemByKey("ID").Text; e.Row.Items.FindItemByKey("Edit").Text = string.Format("<a href='EditDynamicPage.aspx?PID={0}'> Edit </a>", id); e.Row.Items.FindItemByKey("View").Text = string.Format("<a href='../Home/DynamicPage.aspx?pid={0}' target='_Blank'> View </a>", id); }
/// <summary> /// This is grid's Row Adding event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void UwgPages_RowAdding(object sender, Infragistics.Web.UI.GridControls.RowAddingEventArgs e) { if (Page.Request.Form.ToString().IndexOf("Submit") == -1) { return; }
DynamicPage objEnt = new DynamicPage(); objEnt.IsActive = e.Values["isActive"] != null ? bool.Parse(e.Values["isActive"].ToString()) : false; objEnt.IsPublic = e.Values["isPublic"] != null ? bool.Parse(e.Values["isPublic"].ToString()) : false; objEnt.ShortName = e.Values["ShortName"] != null ? e.Values["ShortName"].ToString() : string.Empty; objEnt.Title = e.Values["Title"] != null ? e.Values["Title"].ToString() : string.Empty;
if (string.IsNullOrEmpty(objEnt.ShortName) && string.IsNullOrEmpty(objEnt.Title) && string.IsNullOrEmpty(objEnt.Contents)) { return; }
cntDynamicPage.AddDynamicPage(objEnt).ToString(); }
/// <summary> /// This is grid's Row Updating event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void UwgPages_RowUpdating(object sender, Infragistics.Web.UI.GridControls.RowUpdatingEventArgs e) { if (Page.Request.Form.ToString().IndexOf("Submit") == -1) { return; }
DynamicPage objEnt = new DynamicPage(); objEnt = cntDynamicPage.GetDynamicPage(new Guid(e.Row.Items.FindItemByKey("ID").Text)); objEnt.IsActive = e.Values["isActive"] != null ? bool.Parse(e.Values["isActive"].ToString()) : false; objEnt.IsPublic = e.Values["isPublic"] != null ? bool.Parse(e.Values["isPublic"].ToString()) : false; objEnt.ShortName = e.Values["ShortName"] != null ? e.Values["ShortName"].ToString() : string.Empty; objEnt.Title = e.Values["Title"] != null ? e.Values["Title"].ToString() : string.Empty;
cntDynamicPage.UpdateDynamicPage(objEnt); }
/// <summary> /// This is grid's Row Deleting event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void UwgPages_RowsDeleting(object sender, Infragistics.Web.UI.GridControls.RowDeletingEventArgs e) { if (Page.Request.Form.ToString().IndexOf("Submit") == -1) { return; }
string id = Guid.Empty.ToString();
if (!string.IsNullOrEmpty(e.Row.Items.FindItemByKey("ID").Text)) { id = e.Row.Items.FindItemByKey("ID").Text; cntDynamicPage.DeleteDynamicPage(new Guid(id)); } }
/// <summary> /// This is submit button click event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void BtnSubmit_Click(object sender, EventArgs e) { Response.Redirect(Request.Url.AbsolutePath); }
/// <summary> /// This is cancel button click event handler /// </summary> /// <param name="sender">sender object</param> /// <param name="e">event arguments</param> protected void BtnCancel_Click(object sender, EventArgs e) { Response.Redirect(Request.Url.AbsolutePath); }
Hey Mutlag,
Than you for your question.
I have tried to reproduce the issue in order to investigate it further for you, although the event is fired correctly. Could you have a look at the attached sample and let me know if I am missing something from your scenario.
Looking forward to hearing from you.