Why doesn't AllowAutomaticUpdate/AllowAutomaticInserts work when I'm using a user control as my edit form?
Insert/update works great if I comment out my EditFormType="WebUserControl" settings and I'm using the built-in EditForms or InPlace editing mode. But when I add my user control settings in the EditFormSettings and try to update a row, my changes aren't saved at all. No error - it just doesn't save the changes I make in the form. I have other pages using user controls as the edit form but they use InsertCommand and UpdateCommand events instead of AllowAutomaticUpdate/AllowAutomaticInserts - do I need to do the same thing here and if so, why?
Here's my grid code:
Here's my user control code:
Insert/update works great if I comment out my EditFormType="WebUserControl" settings and I'm using the built-in EditForms or InPlace editing mode. But when I add my user control settings in the EditFormSettings and try to update a row, my changes aren't saved at all. No error - it just doesn't save the changes I make in the form. I have other pages using user controls as the edit form but they use InsertCommand and UpdateCommand events instead of AllowAutomaticUpdate/AllowAutomaticInserts - do I need to do the same thing here and if so, why?
Here's my grid code:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PurchaseOrders.ascx.cs" |
Inherits="AdminWebsite.Admin.UserControls.Projects.PurchaseOrders.PurchaseOrders" %> |
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
<%@ Reference Control="~/Admin/UserControls/Projects/PurchaseOrders/PurchaseOrderForm.ascx" %> |
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="PurchaseOrderDataSource" |
AllowAutomaticInserts="true" AllowAutomaticUpdates="true" AllowAutomaticDeletes="true"> |
<MasterTableView DataKeyNames="PurchaseOrderID" EditMode="EditForms" CommandItemDisplay="Top" |
AutoGenerateColumns="false"> |
<EditFormSettings EditFormType="WebUserControl" UserControlName="~/Admin/UserControls/Projects/PurchaseOrders/PurchaseOrderForm.ascx"> |
</EditFormSettings> |
<CommandItemTemplate> |
<asp:LinkButton ID="NewCommissionButton" runat="server" CommandName="InitInsert"> |
<img class="middle" alt="" src="../Images/Telerik/AddRecord.gif" /> Add New Purchase Order |
</asp:LinkButton> |
</CommandItemTemplate> |
<Columns> |
<telerik:GridButtonColumn CommandName="Delete" Text="Remove" UniqueName="DeleteColumn" |
ImageUrl="~/Images/Telerik/delete.gif" ConfirmText="Are you sure you want to delete this purchase order?" |
ButtonType="ImageButton"> |
<HeaderStyle Width="5%" /> |
<ItemStyle HorizontalAlign="Center" /> |
</telerik:GridButtonColumn> |
<telerik:GridEditCommandColumn ButtonType="ImageButton" UpdateImageUrl="~/Images/Telerik/Update.gif" |
EditImageUrl="~/Images/Telerik/Edit.gif" InsertImageUrl="~/Images/Telerik/update.gif" |
CancelImageUrl="~/Images/Telerik/Cancel.gif" UniqueName="EditCommandColumn"> |
<HeaderStyle Width="5%" /> |
<ItemStyle HorizontalAlign="Center" /> |
</telerik:GridEditCommandColumn> |
<telerik:GridBoundColumn DataField="PurchaseOrderID" HeaderText="Purchase Order ID"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="PONumber" HeaderText="Purchase Order #"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="Date" HeaderText="Date" DataFormatString="{0:M/d/yyyy}"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn DataField="ShipTo" HeaderText="ShipTo"> |
</telerik:GridBoundColumn> |
</Columns> |
</mastertableview> |
<clientsettings> |
<ClientEvents OnPopUpShowing="CenterPopup" /> |
</clientsettings> |
</telerik:RadGrid> |
<asp:LinqDataSource ID="PurchaseOrderDataSource" runat="server" ContextTypeName="NewMillennium.DataAccess.Linq.Projects.ProjectsDataContext" |
TableName="PurchaseOrders" Where="ProjectProgram.ProjectProgramID == @ProjectProgramID" |
EnableDelete="true" EnableInsert="true" EnableUpdate="true"> |
<WhereParameters> |
<asp:QueryStringParameter Name="ProjectProgramID" QueryStringField="ProjectProgramID" |
Type="Int32" /> |
</WhereParameters> |
<InsertParameters> |
<asp:QueryStringParameter Name="ProjectProgramID" QueryStringField="ProjectProgramID" |
Type="Int32" /> |
<asp:Parameter Name="PurchaseOrderID" /> |
<asp:Parameter Name="PublisherID" /> |
<asp:Parameter Name="ShipTo" /> |
</InsertParameters> |
<UpdateParameters> |
<asp:QueryStringParameter Name="ProjectProgramID" QueryStringField="ProjectProgramID" |
Type="Int32" /> |
<asp:Parameter Name="PurchaseOrderID" /> |
<asp:Parameter Name="PublisherID" /> |
<asp:Parameter Name="ShipTo" /> |
</UpdateParameters> |
<DeleteParameters> |
<asp:Parameter Name="PurchaseOrderID" /> |
</DeleteParameters> |
</asp:LinqDataSource> |
Here's my user control code:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="PurchaseOrderForm.ascx.cs" |
Inherits="AdminWebsite.Admin.UserControls.Projects.PurchaseOrders.PurchaseOrderForm" %> |
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
<div class="padding8"> |
<table style="width: 100%" border="0" cellpadding="4" cellspacing="8"> |
<tr> |
<th class="lightgray label"> |
Vendor |
</th> |
<th class="lightgray label"> |
Ship To |
</th> |
</tr> |
<tr> |
<td class="toppadding5"> |
<telerik:RadComboBox ID="drdPublisher" runat="server" DataSourceID="PublisherDataSource" |
DataValueField="PublisherID" DataTextField="PublisherName" MarkFirstMatch="true" |
Height="400px" Width="320px" ShowToggleImage="True" Skin="MillenniumAdmin" EnableEmbeddedSkins="false" |
AppendDataBoundItems="true" SelectedValue='<%# Bind("PublisherID") %>' Style="z-index: 99999999"> |
<items> |
<telerik:RadComboBoxItem Value="" Text="" /> |
</items> |
</telerik:RadComboBox> |
</td> |
<td class="toppadding5"> |
<asp:TextBox TextMode="MultiLine" runat="server" ID="ShipTo" Text='<%# Bind("ShipTo") %>' |
Width="320px" Height="60px"></asp:TextBox> |
</td> |
</tr> |
<tr> |
<th class="lightgray label" colspan="2"> |
Line Items |
</th> |
</tr> |
<tr> |
<td colspan="2"> |
<asp:UpdatePanel runat="server"> |
<ContentTemplate> |
<table width="550px" cellspacing="0"> |
<tr> |
<th> |
Description |
</th> |
<th> |
Qty |
</th> |
<th> |
Rate |
</th> |
<th> |
Total |
</th> |
</tr> |
<asp:Repeater ID="LineItemRepeater" runat="server"> |
<ItemTemplate> |
<tr> |
<td> |
<telerik:RadTextBox ID="Description" runat="server" Width="320px" Skin="MillenniumAdmin" |
EnableEmbeddedSkins="false" Text='<%# Bind("Description") %>'> |
</telerik:RadTextBox> |
</td> |
<td> |
<telerik:RadNumericTextBox ID="Qty" runat="server" Type="Number" Width="80px" Skin="MillenniumAdmin" |
EnableEmbeddedSkins="false" Text='<%# Bind("Qty") %>'> |
<numberformat decimaldigits="0" /> |
</telerik:RadNumericTextBox> |
</td> |
<td> |
<telerik:RadNumericTextBox ID="Rate" runat="server" Type="Currency" Width="80px" |
Skin="MillenniumAdmin" EnableEmbeddedSkins="false" Text='<%# Bind("Rate") %>'> |
<numberformat decimaldigits="2" /> |
</telerik:RadNumericTextBox> |
</td> |
<td> |
<asp:Label ID="Total" runat="server" Width="80px"></asp:Label> |
</td> |
</tr> |
</ItemTemplate> |
</asp:Repeater> |
</table> |
<asp:LinkButton runat="server" ID="AddItemButton" OnClick="AddItemButton_Click"> |
<asp:Image runat="server" ImageUrl="~/images/telerik/insert.gif" CssClass="middle" /> Add an item</asp:LinkButton> |
</ContentTemplate> |
</asp:UpdatePanel> |
</td> |
</tr> |
</table> |
<div id="RadGridButtons" runat="server" style="text-align: left"> |
<asp:Button ID="btnUpdate" Text="Update" runat="server" CommandName="Update" Visible='<%# !((Container as GridItem).OwnerTableView.IsItemInserted) %>'> |
</asp:Button> |
<asp:Button ID="btnInsert" Text="Insert" runat="server" CommandName="PerformInsert" |
Visible='<%# (Container as GridItem).OwnerTableView.IsItemInserted %>'></asp:Button> |
|
<asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" |
CommandName="Cancel"></asp:Button> |
<asp:LinkButton ID="SaveButton" runat="server" CommandName='<%# (Container as GridItem).OwnerTableView.IsItemInserted ? "PerformInsert" : "Update" %>' |
OnClientClick="suppressConfirmation()"><img style="border:0px" alt="" src='../Images/Telerik/Update.gif'/></asp:LinkButton> |
<asp:LinkButton ID="CancelButton" runat="server" CommandName="Cancel" CausesValidation="false" |
OnClientClick="suppressConfirmation()"><img style="border:0px" alt="" src="../Images/Telerik/Cancel.gif" /></asp:LinkButton> |
</div> |
</div> |
<asp:SqlDataSource ID="PublisherDataSource" runat="server" OnInit="SqlDataSource_Init" |
SelectCommandType="StoredProcedure" SelectCommand="GetAllPublisherList"></asp:SqlDataSource> |