I've bound data to a radgrid which I'm using to just reimplement a preexisting gridview control.
I keep getting the error "System.Web.HttpException: The DataSourceID of 'drpGradesEdit' must be the
ID of a control of type IDataSource. A control with ID 'sqlDSGradesEdit' could not be found." when
the grid goes into edit mode
One of the columns has a button that fires the Edit command and two have radcombobox + SQLDataSource controls on their Edit templates
and when I click the edit button I loop through the following bit of code until I get the the item before the one I clicked edit on, and once
It finishes the sub for that previous item It jumps to my error handling function with the above error message.
Protected Sub rgUserQuals_RowDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgUserQuals.ItemDataBound ' Check that Item sending the event is a RadGrid Data Item If (TypeOf e.Item Is Telerik.Web.UI.GridDataItem) Then 'Go through all the Rad grid Items in edit mode and Dim GridEditableItem As Telerik.Web.UI.GridEditableItem If (TypeOf e.Item Is Telerik.Web.UI.GridEditableItem) And e.Item.IsInEditMode Then ' Then Try Dim teststring As String = "" teststring = Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("Qualification") Dim gs As SqlDataSource = CType(e.Item.FindControl("sqlDSGradesEdit"), SqlDataSource) gs.SelectParameters("Qualification").DefaultValue = _ Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("Qualification") gs.SelectParameters("QualType").DefaultValue = _ Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("QualType") Dim cbo As Telerik.Web.UI.RadComboBox = CType(e.Item.FindControl("drpGradesEdit"), Telerik.Web.UI.RadComboBox) cbo.DataSourceID = gs.ID cbo.DataBind() cbo.SelectedValue = Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("Grade") Dim ss As SqlDataSource = CType(e.Item.FindControl("sqlDSSchoolsEdit"), SqlDataSource) ss.SelectParameters("SchoolName").DefaultValue = _ Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("SchoolName") Dim rcbuqes As Telerik.Web.UI.RadComboBox = CType(e.Item.FindControl("rcbUsersQualEditSchool"), Telerik.Web.UI.RadComboBox) rcbuqes.DataSourceID = ss.ID rcbuqes.DataBind() rcbuqes.SelectedValue = Me.rgUserQuals.MasterTableView.DataKeyValues(e.Item.ItemIndex)("SchoolName") Catch ex As Exception End Try End If End If End Subfunction DisableSubmitBtn() { var btnSubmit = $find('<% =btnItemSubmit.ClientId %>') btnSubmit.set_text("Submitting"); btnSubmit.set_enabled(false) }setTimeout('document.getElementById("' + btnItemSubmit + '").disabled = false', 2000);
var btnSubmit = $find('<% =btnItemSubmit.ClientId %>')
setTimeout('btnSubmit.set_enabled(false)', 2000);My structure is this...
MasterPage >> Content Page which includes a RadGrid >> In the RadGrid, I am using a UserControl (ascx) for the insert item.
Masterpage has ScriptManager and RadAjaxManager
Contentpage has RadAjaxProxy
UserControl has RadAjaxProxy
The UserControl is basically a table with labels, Radtextboxes and Radcomboboxes.
My usercontrol has this declaration:
----------------------------------------------------------------------------
<telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server" >
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="uxDirectory">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="uxProjectName" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManagerProxy>
-------------------------------------------------------------------------------
uxDirectory and uxProjectName are both RadComboBoxes
The problem I am facing is when a value is changed in the uxDirectory combobox all the "Load" events based on other controls are being fired. It is my understanding that since I have autopostback="true" on the uxDirectory, and based upon the declaration above, that only the uxProjectName control will Load. However, all my controls are reloading. This is wiping out the values saved, etc. How can I perform a Ajax postback for a specific control within a ASCX Usercontrol?
-DB
<telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" GridLines="None" OnInsertCommand="RadGrid1_InsertCommand" OnItemCommand="RadGrid1_ItemCommand" OnNeedDataSource="RadGrid1_NeedDataSource" OnUpdateCommand="RadGrid1_UpdateCommand" OnItemDataBound="RadGrid1_ItemDataBound" OnItemCreated="RadGrid1_ItemCreated" Width="100%"> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> <MasterTableView AllowMultiColumnSorting="True" CommandItemDisplay="Top" DataKeyNames="ID,OriginalAmount" CommandItemSettings-AddNewRecordText="Add new payment or credit" ClientDataKeyNames="ID" Font-Size="Smaller"> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> <PagerStyle Mode="NextPrevNumericAndAdvanced" /> <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridEditCommandColumn FilterControlAltText="Filter EditCommandColumn column" ButtonType="PushButton"> <ItemStyle Font-Size="Smaller" Width="10%" /> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn CommandName="Rollback" ConfirmText="Are you sure you want to roll back the application of this payment/credit?" ConfirmTitle="Rollback?" FilterControlAltText="Filter Rollback column" Text="Rollback" UniqueName="Rollback" ButtonType="PushButton"> </telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="Apply" FilterControlAltText="Filter Apply column" Text="Apply" UniqueName="Apply" ButtonType="PushButton"> </telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="ViewApplication" FilterControlAltText="Filter View Application column" Text="View" UniqueName="ViewApplication" ButtonType="PushButton"> </telerik:GridButtonColumn> <telerik:GridButtonColumn CommandName="NSF" FilterControlAltText="Filter NSF column" Text="NSF" UniqueName="NSF" ButtonType="PushButton"> </telerik:GridButtonColumn> <telerik:GridDateTimeColumn DataField="CreditDate" DataType="System.DateTime" FilterControlAltText="Filter CreditDate column" HeaderText="Credit Date" UniqueName="CreditDate" DataFormatString="{0:MM/dd/yyyy}"> </telerik:GridDateTimeColumn> <telerik:GridTemplateColumn DataField="ActivityTypeID" FilterControlAltText="Filter ActivityType column" HeaderText="Type" UniqueName="ActivityType"> <EditItemTemplate> <telerik:RadComboBox ID="rcbActivityType" runat="server"> </telerik:RadComboBox> </EditItemTemplate> <ItemTemplate> <asp:Label ID="lblActivityType" runat="server" Text='<%# Eval("ActivityTypeID") %>'></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="CreditIdentifier" FilterControlAltText="Filter Check Number column" HeaderText="Check Number" MaxLength="500" UniqueName="CreditIdentifier"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="OriginalAmount" FilterControlAltText="Filter OriginalAmount column" HeaderText="Original Amt." UniqueName="OriginalAmount" DataFormatString="{0:C2}"> </telerik:GridBoundColumn> <telerik:GridNumericColumn DataField="RemainingAmount" DataType="System.Decimal" DecimalDigits="2" FilterControlAltText="Filter RemainingAmount column" HeaderText="Remaining Amt." NumericType="Currency" ReadOnly="True" UniqueName="RemainingAmount"> </telerik:GridNumericColumn> <telerik:GridBoundColumn DataField="Notes" FilterControlAltText="Filter Notes column" ColumnEditorID="GridTextBoxColumnEditor1" HeaderText="Notes" MaxLength="500" UniqueName="Notes"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CreatedBy" FilterControlAltText="Filter CreatedBy column" HeaderText="Created By" MaxLength="50" ReadOnly="True" UniqueName="CreatedBy" Display="False"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn column" ButtonType="PushButton"> </EditColumn> </EditFormSettings> <PagerStyle Mode="NextPrevNumericAndAdvanced"></PagerStyle> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu></telerik:RadGrid>protected void RadGrid1_UpdateCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e){ LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits(); try { oARC.es.Connection.Name = "NAS"; oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL; GridEditableItem editedItem = e.Item as GridEditableItem; GridEditManager editMan = editedItem.EditManager; int iID = (int)editedItem.OwnerTableView.DataKeyValues[editedItem.ItemIndex]["ID"]; DateTime dteCreditDate = DateTime.Parse((editMan.GetColumnEditor("CreditDate") as GridDateTimeColumnEditor).Text); int iActivityTypeID = Convert.ToInt16((editedItem["ActivityType"].FindControl("rcbActivityType") as RadComboBox).SelectedValue); decimal dOriginalAmount = CurrencyToDecimal((editMan.GetColumnEditor("OriginalAmount") as GridTextBoxColumnEditor).Text); string sNotes = (editMan.GetColumnEditor("Notes") as GridTextBoxColumnEditor).Text; string sCreditIdentifier = (editMan.GetColumnEditor("CreditIdentifier") as GridTextBoxColumnEditor).Text; if (oARC.LoadByPrimaryKey(iID)) { oARC.CreditDate = dteCreditDate; oARC.ActivityTypeID = iActivityTypeID; oARC.CreditIdentifier = sCreditIdentifier; oARC.OriginalAmount = dOriginalAmount; oARC.Notes = sNotes; oARC.Save(); } } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex); } finally { oARC = null; }