Hi all,
I am trying to achieve manual insert and update using form template. But it does not work. I am using linq-to-sql datasource. Datasource is set in NeedDataSource Event. Both InsertCommand and UpdateCommand events are not firing.
Code:
PS: This is sharepoint 2010 visual web part.
I am trying to achieve manual insert and update using form template. But it does not work. I am using linq-to-sql datasource. Datasource is set in NeedDataSource Event. Both InsertCommand and UpdateCommand events are not firing.
Code:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel1"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="dgv"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="dgv" /> <telerik:AjaxUpdatedControl ControlID="lblStatus" /> <telerik:AjaxUpdatedControl ControlID="RadWindowManager1" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManager><telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Skin="Silk" /><div class="dbStatus"> <asp:Label runat="server" ID="lblStatus" EnableViewState="false" Font-Bold="true" /></div><telerik:RadGrid ID="dgv" runat="server" AutoGenerateColumns="False" PageSize="10" AllowPaging="True" AllowSorting="True" OnNeedDataSource="dgv_NeedDataSource" OnUpdateCommand="dgv_UpdateCommand" OnInsertCommand="dgv_InsertCommand" OnDeleteCommand="dgv_DeleteCommand" OnItemInserted="dgv_ItemInserted"> <MasterTableView TableLayout="Auto" DataKeyNames="Record_Id" ShowHeadersWhenNoRecords="true" EditMode="PopUp"> <NoRecordsTemplate> <div> There are no records </div> </NoRecordsTemplate> <Columns> <telerik:GridBoundColumn UniqueName="colRecordId" DataField="Record_Id" DataType="System.Int64" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,CountryId%>"> <%--<HeaderStyle Width="120" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colContinent" DataField="Continent" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Continent%>"> <%--<HeaderStyle Width="160" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colContinentBI" DataField="ContinentBI" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,ContinentBI%>"> <%--<HeaderStyle Width="160" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colDescription" DataField="Description" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Description%>"> <%--<HeaderStyle Width="200" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colDescriptionBI" DataField="DescriptionBI" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,DescriptionBI%>"> <%--<HeaderStyle Width="200" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colCreatedBy" DataField="CreatedBy" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,CreatedBy%>"> <%--<HeaderStyle Width="120" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colCreatedON" DataField="CreatedOn" DataType="System.DateTime" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,CreatedDate%>"> <%--<HeaderStyle Width="160" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colModifiedBy" DataField="ModifiedBy" DataType="System.String" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,ModifiedBy%>"> <%--<HeaderStyle Width="120" />--%> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="colModifiedOn" DataField="ModifiedOn" DataType="System.DateTime" HeaderText="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,ModifiedDate%>"> <%--<HeaderStyle Width="160" />--%> </telerik:GridBoundColumn> </Columns> <EditFormSettings EditFormType="Template" PopUpSettings-Modal="true"> <FormTemplate> <table> <tr> <td colspan="3"> <br /> <asp:Label runat="server" ID="lblStatus" Font-Bold="true" /> <br /> </td> </tr> <tr> <td class="tdLabel"> <asp:Label runat="server" ID="lblCountryId" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,CountryId%>" AssociatedControlID="txtCountryId" /> </td> <td class="tdControl"> <telerik:RadTextBox ID="txtCountryId" runat="server" Width="300" ReadOnly="true" Text='<%# Bind("Record_Id") %>' /> </td> <td></td> </tr> <tr> <td class="tdLabel"> <asp:Label runat="server" ID="lblContinent" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Continent%>" AssociatedControlID="txtContinent" /> </td> <td class="tdControl"> <telerik:RadTextBox ID="txtContinent" runat="server" Width="300" MaxLength="255" Text='<%# Bind("Continent") %>' /> </td> <td></td> </tr> <tr> <td class="tdLabel"> <asp:Label runat="server" ID="lblContinentBI" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,ContinentBI%>" AssociatedControlID="txtContinentBI" /> </td> <td class="tdControl"> <telerik:RadTextBox ID="txtContinentBI" runat="server" Width="300" MaxLength="255" Text='<%# Bind("ContinentBI") %>' /> </td> <td></td> </tr> <tr> <td class="tdLabel"> <asp:Label runat="server" ID="lblDescription" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Description%>" AssociatedControlID="txtDescription" /> </td> <td class="tdControl"> <telerik:RadTextBox ID="txtDescription" runat="server" Width="300" MaxLength="255" ValidationGroup="CountryValidation" Wrap="false" EmptyMessage="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Description%>" Text='<%# Bind("Description") %>' /> </td> <td> <asp:RequiredFieldValidator ID="rfvDescription" runat="server" ValidationGroup="CountryValidation" ControlToValidate="txtDescription" ErrorMessage="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,DescriptionRequiredValidationMessage%>" Text="*" /> </td> </tr> <tr> <td class="tdLabel"> <asp:Label runat="server" ID="Label1" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,DescriptionBI%>" AssociatedControlID="txtDescriptionBI" /> </td> <td class="tdControl"> <telerik:RadTextBox ID="txtDescriptionBI" runat="server" Width="300" MaxLength="255" ValidationGroup="CountryValidation" Wrap="False" EmptyMessage="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,DescriptionBI%>" Text='<%# Bind("DescriptionBI") %>' /> </td> <td> <asp:RequiredFieldValidator ID="rfvDescriptionBI" runat="server" ValidationGroup="CountryValidation" ControlToValidate="txtDescriptionBI" ErrorMessage="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,DescriptionBIRequiredValidationMessage%>" Text="*" /> </td> </tr> </table> <br /> <br /> <table> <tr> <td class="tdButton"> <telerik:RadButton ID="btnSubmit" runat="server" Width="100%" ValidationGroup="CountryValidation" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Submit%>" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' /> </td> <td class="tdButton"> <telerik:RadButton ID="btnCancel" runat="server" Width="100%" Text="<%$Resources:AM.BLIS.SP.Common.Resources.BLISResource,Cancel%>" CommandName="Delete" /> </td> </tr> </table> </FormTemplate> </EditFormSettings> </MasterTableView></telerik:RadGrid><telerik:RadWindowManager ID="RadWindowManager1" runat="server" />CountryMasterBPO cm = new CountryMasterBPO();protected void dgv_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e){ this.dgv.DataSource = cm.GetAllCountries();}protected void dgv_InsertCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ RadAjaxManager1.ResponseScripts.Add(string.Format("Insert Command")); var editableItem = ((GridEditableItem)e.Item); var newCountry = new tbCountry_Master(); Hashtable values = new Hashtable(); e.Item.OwnerTableView.ExtractValuesFromItem(values, editableItem); newCountry.Continent = (string)values["Continent"]; newCountry.ContinentBI = (string)values["ContinentBI"]; newCountry.Description = (string)values["Description"]; newCountry.DescriptionBI = (string)values["DescriptionBI"]; newCountry.Exp1 = "0"; newCountry.Exp2 = "0"; newCountry.CreatedBy = SPContext.Current.Web.CurrentUser.LoginName; newCountry.CreatedOn = DateTime.Now; newCountry.ModifiedBy = SPContext.Current.Web.CurrentUser.LoginName; newCountry.ModifiedOn = DateTime.Now; var result = cm.SaveCountry(newCountry); DisplayMessage(!result, result ? "Sucessfully Saved" : "Error!!! Try Again");}protected void dgv_UpdateCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ RadAjaxManager1.ResponseScripts.Add(string.Format("Update Command")); var editableItem = ((GridEditableItem)e.Item); var recordId = (long)editableItem.GetDataKeyValue("Record_Id"); RadAjaxManager1.ResponseScripts.Add(string.Format("Record Id: {0}", recordId)); var country = cm.GetCountry(recordId); if (country != null) { RadAjaxManager1.ResponseScripts.Add(string.Format("Description: {0}", country.Description)); editableItem.UpdateValues(country); country.ModifiedBy = SPContext.Current.Web.CurrentUser.LoginName; country.ModifiedOn = DateTime.Now; var result = cm.SaveCountry(country); DisplayMessage(!result, result ? "Sucessfully Updated" : "Error!!! Try Again"); }}protected void dgv_DeleteCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ RadAjaxManager1.ResponseScripts.Add(string.Format("Delete Command")); var editableItem = ((GridEditableItem)e.Item); var recordId = (long)editableItem.GetDataKeyValue("Record_Id"); bool isReferenced = false; var result = cm.DeleteCountry(recordId, out isReferenced); DisplayMessage(!result, result ? "Sucessfully Deleted" : "Error!!! Try Again");}protected void dgv_ItemInserted(object sender, GridInsertedEventArgs e){ if (e.Exception != null) { e.ExceptionHandled = true; e.KeepInInsertMode = true; DisplayMessage(true, e.Exception.Message.ToString()); }}private void DisplayMessage(bool isError, string text){ this.lblStatus.ForeColor = (isError) ? Color.Red : Color.Green; this.lblStatus.Text = text;}PS: This is sharepoint 2010 visual web part.
