<telerik:RadComboBox runat="server" ID="ddlRoles" Visible="false" EnableViewState="true" AutoPostBack="True" CausesValidation="false" ZIndex="999999"> <Items> </Items></telerik:RadComboBox>'ItemTemplate Class. Just pulls the User ControlClass QC_HACCP_Hold Implements ITemplate Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn Dim lit1 As New QC_HACCP_Hold_Lot container.Controls.Add(lit1) End Sub End Class'User Control write up - QC_HACCP_Hold_Lot<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="QC_HACCP_Hold_Lot.ascx.vb" Inherits="sadlersnet.QC_HACCP_Hold_Lot" %><asp:panel id="pnlHold" runat="server"> <p> Enter Lot Number to Place on Hold<br /> <asp:TextBox ID="txtLotNumber" runat="server"></asp:TextBox><asp:Button ID="cmdHoldLot" runat="server" Text="Set to Hold" /> </p></asp:panel>'Code to Create Parent and Sub with Template Applied Dim _QCHACCP_Place_Lot_On_Hold As RadMenuItem = AddMenuItem("Place Lot on Hold", Nothing, False) With _QCHACCP_Place_Lot_On_Hold Dim _QC_HoldTemplate As New Custom_Rad_Templates.QC_HACCP_Hold mnuMain.ItemTemplate = _QC_HoldTemplate .Items.Add(New RadMenuItem) End With'Helper function for creating menuitemsPrivate Function AddMenuItem(ByVal Caption As String, URL As String, ByVal AutoPostBack As Boolean, Optional ByVal Target As String = Nothing) As RadMenuItem Dim _MenuItem As RadMenuItem = New RadMenuItem _MenuItem.PostBack = AutoPostBack _MenuItem.NavigateUrl = URL _MenuItem.Text = Caption If Not IsNothing(Target) Then _MenuItem.Target = Target Return _MenuItem End FunctionRadSplitter .paneTabContainer { border-color: #424242 !important; border-width: thin !important; } .RadSplitter .paneTabContainerDocked, .RadSplitter .paneTabContainerDockedHorizontal { background: #FAAC58 !important; } .RadSplitter .tabsContainer .paneTabContainerExpanded, .RadSplitter .tabsContainer .paneTabContainerExpandedHorizontal { background: #FAAC58 !important; } function closeRadWindow() { $find("<%= RadAjaxManager.ClientID %>").ajaxRequest(); } </script> </TELERIK:RADCODEBLOCK> <telerik:RadWindowManager ID="RadWindowManager" runat="server"> <Windows> <telerik:RadWindow ID="RadWindow1" runat="server" Modal="true" Title="Add New Description to Table" Width="400px" Height="150" Behaviors="Close, Move" OnClientClose="closeRadWindow"> <ContentTemplate> <asp:Label ID="Description" runat="server" Text="New Description: "></asp:Label> <asp:TextBox ID="NewDescriptionTextBox" runat="server" Width="300px"></asp:TextBox> <asp:Button ID="AddNewDescriptionButton" runat="server" Text="Add" OnClick="AddNewDescriptionButton_Click" /><br /><br /> <asp:Button ID="CancelAddDescriptionButton" runat="server" Text="Cancel" /> <asp:Label ID="messageLabel" runat="server" Text="Label" Visible="false"></asp:Label> </ContentTemplate> </telerik:RadWindow> </Windows> </telerik:RadWindowManager> <telerik:RadAjaxManager runat="server" ID="RadAjaxManager" DefaultLoadingPanelID="RadAjaxLoadingPanel" OnAjaxRequest="RadAjaxManager_AjaxRequest"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="AdminHoldReasonGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="AdminHoldReasonGrid" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="RadAjaxManager"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="AdminHoldReasonGrid" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager>THIS IS THE RELEVANT CODE BEHIND protected void RadAjaxManager_AjaxRequest(object sender, Telerik.Web.UI.AjaxRequestEventArgs e) { AdminHoldReasonGrid.MasterTableView.SortExpressions.Clear(); AdminHoldReasonGrid.Rebind(); }I have a problem with 2 of my controls "disappearing" when I use the RadAjaxManager to update them when I click a button.
Here is my button:
<asp:Button runat="server" id="btnClick" OnClick="btnClick_Click" />
Here is the btnClick_Click in my C# file:
protected void btnClick_Click(object sender, EventArgs e)
{
SqlConnection myConn3 = new SqlConnection("Dataconnection");
myConn3.Open();
string getCategoryQueryString;
getCategoryQueryString = "SELECT MasterTableCategories.MasterID, MasterTableCategories.SICCode, [Sic-Codes].[SIC Name1] AS Category FROM MasterTableCategories INNER JOIN [Sic-Codes] ON MasterTableCategories.SICCode = [Sic-Codes].[SIC Code1] WHERE (MasterTableCategories.MasterID = @MasterID)";
SqlCommand getCategoryQuery = new SqlCommand(getCategoryQueryString, myConn3);
getCategoryQuery.Parameters.Add("@MasterID", Master_RecordID.Value);
SqlDataReader getCategoryReader = getCategoryQuery.ExecuteReader();
if (getCategoryReader.HasRows)
{
getCategoryReader.Read();
Category.Text = getCategoryReader["Category"].ToString();
SICCode.Value = getCategoryReader["SICCode"].ToString();
}
else
{
//For testing purposes
Category.Text = "Cars";
SICCode.Value = "123456789";
}
getCategoryReader.Dispose();
myConn3.Close();
}
Here is the Ajax:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server" DefaultLoadingPanelID="RadAjaxLoadingPanel_CampaignChange">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="btnClick">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="Category" />
<telerik:AjaxUpdatedControl ControlID="SICCode" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
Here are the controls:
<asp:TextBox ID="Category" runat="server" Width="100%" ReadOnly="true"></asp:TextBox>
<asp:HiddenField ID="SICCode" runat="server" Value="" />
The user presses the button and the btnClick_Click goes to the database and retrieves the Category and SIC Code. It's then supposed to update the controls with string data, but makes the ENTIRE textbox and hidden field disappear from the html. All I am left with is an empty div...sort of. It even removes the CategoryPanel div and SICCodePanel div from the html.
If anyone has a clue why these controls vanish, I would appreciate it immensely!
<div> <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged1"> <asp:ListItem Value="Table_321">Table_321</asp:ListItem> <asp:ListItem Value="Table_621">Table_621</asp:ListItem> </asp:DropDownList> <br /> <br /> <br /> <telerik:RadGrid ID="RadGrid1" runat="server" Culture="it-IT" OnNeedDataSource="RadGrid1_NeedDataSource" AllowPaging="True" AllowSorting="True" AllowAutomaticDeletes="True" AllowAutomaticInserts="True" AllowAutomaticUpdates="True"> <ExportSettings ExportOnlyData="True"> <Pdf PageWidth=""> </Pdf> </ExportSettings> <ClientSettings> <Scrolling AllowScroll="True" UseStaticHeaders="True" /> </ClientSettings> <MasterTableView CommandItemDisplay="Top"> <CommandItemSettings ShowExportToExcelButton="True" /> <Columns> <telerik:GridEditCommandColumn ButtonType="ImageButton"> <HeaderStyle Width="30px" /> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ButtonType="ImageButton" Text="Delete" CommandName="Delete" FilterControlAltText="Filter column1 column" ConfirmDialogType="RadWindow" ConfirmText="Do you really want to delete this project and all its content?" UniqueName="Cancel"> <HeaderStyle Width="30px" /> </telerik:GridButtonColumn> </Columns> <EditFormSettings> <EditColumn UniqueName="EditCommandColumn1" FilterControlAltText="Filter EditCommandColumn1 column"></EditColumn> </EditFormSettings> <PagerStyle AlwaysVisible="True" /> </MasterTableView> <PagerStyle AlwaysVisible="True" /> </telerik:RadGrid> <br /> <br /> </div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:BOMConnectionString %>"> <DeleteParameters> <asp:Parameter Name="Id" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="Code" Type="Double" /> <asp:Parameter Name="Description" Type="String" /> <asp:Parameter Name="Bkgroup" Type="Double" /> <asp:Parameter Name="Stgroup" Type="Double" /> <asp:Parameter Name="Quantity" Type="Double" /> <asp:Parameter Name="BomNote" Type="String" /> <asp:Parameter Name="UnitEng" Type="String" /> <asp:Parameter Name="AlternCost" Type="Double" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="Code" Type="Double" /> <asp:Parameter Name="Description" Type="String" /> <asp:Parameter Name="Bkgroup" Type="Double" /> <asp:Parameter Name="Stgroup" Type="Double" /> <asp:Parameter Name="Quantity" Type="Double" /> <asp:Parameter Name="BomNote" Type="String" /> <asp:Parameter Name="UnitEng" Type="String" /> <asp:Parameter Name="AlternCost" Type="Double" /> <asp:Parameter Name="Id" Type="Int32" /> </UpdateParameters> </asp:SqlDataSource>protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e) { if (DropDownList1.SelectedIndex > -1) { RadGrid1.DataSource=null; RadGrid1.Rebind(); } } protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { string tableInUse = DropDownList1.SelectedItem.Text; RadGrid1.DataSource = SqlDataSource1; SqlDataSource1.DeleteCommand = "DELETE FROM [" + tableInUse + "] WHERE [Id] = @Id"; SqlDataSource1.InsertCommand = "INSERT INTO [" + tableInUse + "] ([Code], [Description], [Bkgroup], [Stgroup], [Quantity], [BomNote], [UnitEng], [AlternCost]) VALUES (@Code, @Description, @Bkgroup, @Stgroup, @Quantity, @BomNote, @UnitEng, @AlternCost)"; SqlDataSource1.SelectCommand = "SELECT * FROM [" + tableInUse + "] ORDER BY [Code]"; SqlDataSource1.UpdateCommand = "UPDATE [" + tableInUse + "] SET [Code] = @Code, [Description] = @Description, [Bkgroup] = @Bkgroup, [Stgroup] = @Stgroup, [Quantity] = @Quantity, [BomNote] = @BomNote, [UnitEng] = @UnitEng, [AlternCost] = @AlternCost WHERE [Id] = @Id"; }