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
20
RowAdding event in BatchUpdating mode is not firing WebDataGrid
posted

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;

if (string.IsNullOrEmpty(objEnt.ShortName) && string.IsNullOrEmpty(objEnt.Title) && string.IsNullOrEmpty(objEnt.Contents))
{
return;
}

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);
}

Parents
No Data
Reply
  • 20255
    Offline posted

    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.

    MasterPage.zip
Children
No Data