Hello all and Thanks for any help in advance. I am using a main web page that holds a RadTabStrip with RadMultipage. Each page for the Multipage is a seperate user control. I am using RenderSelectedPageOnly for this. Currently I have the tabs working and loading the proper pages. An issue I am running into is that when a user is on the first tab and clicks on the second tab, I want to force a save of the first tab. Anyone have input on how I can accomplish this. I notice on the tab click for the second tab it does the validation but if the required fields are entered it goes to the next tab without saving.
Here is my main .aspx page
<%@ Page Title="" Language="VB" MasterPageFile="~/STAR.Master" AutoEventWireup="false" CodeFile="~/ARL/Add-Set.aspx.vb" Inherits="AddNewSet" %><%@ Register TagPrefix="ucAddSetSetInfo" TagName="SetInfo" Src="~/ARL/rpvSetInfo.ascx" %><%@ Register TagPrefix="ucAddSetAttributes" TagName="Attributes" Src="~/ARL/rpvAttributes.ascx" %><%@ Register TagPrefix="ucAddSetAnalysis" TagName="Analysis" Src="~/ARL/rpvAnalysis.ascx" %><%@ Register TagPrefix="ucAddSetCreate" TagName="Create" Src="~/ARL/rpvCreate.ascx" %><%@ Register TagPrefix="ucAddSetEditDescription" TagName="EditDescription" Src="~/ARL/rpvEditDescription.ascx" %><%@ Register TagPrefix="ucAddSetEditAttributes" TagName="EditAttributes" Src="~/ARL/rpvEditAttributes.ascx" %><%@ Register TagPrefix="ucAddSetLabels" TagName="Labels" Src="~/ARL/rpvLabels.ascx" %><asp:Content ID="Content1" ContentPlaceHolderID="cphBodyText" runat="Server"><!--- Load the ARL StyleSheet ---><link href="css/ARL.css" rel="stylesheet" /><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"><script type="text/javascript"> function MatterTabSelecting(sender, eventArgs) { $get("<%= previousTabHidden.ClientID%>").value = sender.get_selectedTab().get_text(); if (typeof (Page_ClientValidate) == 'function') { Page_ClientValidate(); if (!Page_IsValid) eventArgs.set_cancel(true); } return false; }</script></telerik:RadCodeBlock> <asp:HiddenField ID="previousTabHidden" runat="Server" /> <input type="hidden" id="RadSampleTypeValue" name="RadSampleTypeValue" value="" /> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="rtsAddNewSet" > <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtsAddNewSet" /> <telerik:AjaxUpdatedControl ControlID="rmpAddNewSet" LoadingPanelID="RadAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="rmpAddNewSet"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rmpAddNewSet" LoadingPanelID="RadAjaxLoadingPanel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel> <h1> Add New Set</h1> <div class="clear"> </div> <telerik:RadTabStrip runat="server" ID="rtsAddNewSet" Orientation="HorizontalTop" OnClientTabSelecting="MatterTabSelecting" CausesValidation="true" SelectedIndex="0" MultiPageID="rmpAddNewSet" Skin="STAR" EnableEmbeddedSkins="False" OnTabClick="rtsAddNewSet_TabClick" AutoPostBack="true" > <Tabs> <telerik:RadTab Text="Set Info" PageViewID="rpvSetInfo" > </telerik:RadTab> <telerik:RadTab Text="Attributes" PageViewID="rpvAttributes" > </telerik:RadTab> <telerik:RadTab Text="Analysis" PageViewID="rpvAnalysis" > </telerik:RadTab> <telerik:RadTab Text="Create" PageViewID="rpvCreate" Enabled="false" > </telerik:RadTab> <telerik:RadTab Text="Edit Description" PageViewID="rpvEditDescription" Enabled="false" > </telerik:RadTab> <telerik:RadTab Text="Edit Attributes" PageViewID="rpvEditAttributes" Enabled="false" > </telerik:RadTab> <telerik:RadTab Text="Labels" PageViewID="rpvLabels" Enabled="false" > </telerik:RadTab> </Tabs> </telerik:RadTabStrip> <telerik:RadMultiPage runat="server" Visible="true" ID="rmpAddNewSet" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px" SelectedIndex="0" RenderSelectedPageOnly="true" Width="950px" > <telerik:RadPageView ID="rpvSetInfo" runat="server"> <ucAddSetSetInfo:SetInfo ID="pageSetInfo" runat="server" /> </telerik:RadPageView> <telerik:RadPageView ID="rpvAttributes" runat="server"> <ucAddSetAttributes:Attributes ID="pageAttributes" runat="server"/> </telerik:RadPageView> <telerik:RadPageView ID="rpvAnalysis" runat="server"> <ucAddSetAnalysis:Analysis ID="pageAnalysis" runat="server"/> </telerik:RadPageView> <telerik:RadPageView ID="rpvCreate" runat="server"> <ucAddSetCreate:Create ID="pageCreate" runat="server"/> </telerik:RadPageView> <telerik:RadPageView ID="rpvEditDescription" runat="server"> <ucAddSetEditDescription:EditDescription ID="pageEditDescription" runat="server"/> </telerik:RadPageView> <telerik:RadPageView ID="rpvEditAttributes" runat="server"> <ucAddSetEditAttributes:EditAttributes ID="pageEditAttributes" runat="server"/> </telerik:RadPageView> <telerik:RadPageView ID="rpvLabels" runat="server"> <ucAddSetLabels:Labels ID="pageLabels" runat="server"/> </telerik:RadPageView> </telerik:RadMultiPage> <div class="clear"> </div></asp:Content>Here is the back code for this main page:
Imports Telerik.Web.UIImports System.Web.UI.WebControlsImports System.Data.SqlClientImports System.DataImports System.Web.UIImports System.ConfigurationImports System.DiagnosticsImports SystemImports System.CollectionsImports System.ComponentModelImports System.WebImports System.Web.SessionStateImports System.Web.UI.HtmlControlsImports System.XmlImports Ionic.ZipPartial Class AddNewSet Inherits System.Web.UI.Page Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load End Sub Protected Sub rtsAddNewSet_TabClick(sender As Object, e As Telerik.Web.UI.RadTabStripEventArgs) Dim strSelectedTab As String = e.Tab.PageViewID rmpAddNewSet.FindPageViewByID(strSelectedTab).Visible = True ' rmpAddNewSet.FindPageViewByID(strSelectedTab). End SubEnd ClassHere is my .ascx code for the first user control:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="rpvSetInfo.ascx.vb" Inherits="Set_Info" %><asp:HiddenField ID="previousTabHidden" runat="Server" /><input type="hidden" id="RadSampleTypeValue" name="RadSampleTypeValue" value="" /><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script type="text/javascript"> //Enforces maxlength of multiline textboxes function textboxMultilineMaxNumber(txt, maxLen) { try { if (txt.value.length > (maxLen - 1)) return false; } catch (e) { } } </script></telerik:RadCodeBlock><telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel2" runat="server" Skin="Default"></telerik:RadAjaxLoadingPanel><telerik:RadAjaxManagerProxy ID="AjaxManagerProxy1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="cboFund" EventName="SelectedIndexChanged"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="txtFundTitle" /> <telerik:AjaxUpdatedControl ControlID="txtFundManager" /> <telerik:AjaxUpdatedControl ControlID="lblConfidential" /> <telerik:AjaxUpdatedControl ControlID="rmpAddNewSet" LoadingPanelID="RadAjaxLoadingPanel2" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnNext"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtsAddNewSet" /> <telerik:AjaxUpdatedControl ControlID="rmpAddNewSet" /> <telerik:AjaxUpdatedControl ControlID="lblErrors" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="btnSave"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="rtsAddNewSet" /> <telerik:AjaxUpdatedControl ControlID="rmpAddNewSet" LoadingPanelID="RadAjaxLoadingPanel2" /> <telerik:AjaxUpdatedControl ControlID="lblErrors" /> </UpdatedControls> </telerik:AjaxSetting> <telerik:AjaxSetting AjaxControlID="grdResultsTo"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="grdResultsTo" LoadingPanelID="RadAjaxLoadingPanel2" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings></telerik:RadAjaxManagerProxy><!--- Begin Page Content ---><div class="ARL_container"> <div style="width: 50%;"> <asp:Label ID="lblErrors" runat="server" ForeColor="Red" Visible="false" Text="1234"></asp:Label> </div> <table class="box-style"> <tr> <td> <label> Set #:</label> </td> <td> <asp:Label ID="lblSetNumber" runat="server"></asp:Label> </td> <td> <telerik:RadButton ID="btnGenerateSampleNum" runat="server" Text="Generate Sample" Visible="false" CausesValidation="true" AutoPostBack="true"> </telerik:RadButton> </td> <td colspan="2" align="right"> Date Submitted: </td> <td> <telerik:RadDatePicker ID="rdpDateSubmitted" runat="server" DateInput-MaxLength="8"> <Calendar ID="Calendar2" runat="server"> <FastNavigationSettings EnableTodayButtonSelection="true"> </FastNavigationSettings> <SpecialDays> <telerik:RadCalendarDay Repeatable="Today" Date="" ItemStyle-CssClass="rcToday"> </telerik:RadCalendarDay> </SpecialDays> </Calendar> </telerik:RadDatePicker> </td> </tr> <tr> <td> Parent(s): </td> <td> <telerik:RadComboBox ID="cboParentOne" runat="server" DropDownWidth="220px" DataTextField="SampleNumber" DataValueField="SampleID" EmptyMessage="Select..." Height="190px" MarkFirstMatch="true" HighlightTemplatedItems="true" AllowCustomText="true" MaxLength="6" DataSourceID="GetSampleNumber" EnableItemCaching="true" CausesValidation="false" AutoPostBack="false" EnableAutomaticLoadOnDemand="true" ShowMoreResultsBox="true" ItemsPerRequest="20"> <HeaderTemplate> <ul> <li class="colSampleNum">Sample</li> <li class="colSampleNum">Date Submitted</li> </ul> </HeaderTemplate> <ItemTemplate> <ul> <li class="colSampleNum"> <%#Eval("SampleNumber")%> </li> <li class="colSampleNum"> <%#Eval("DateSubmitted")%> </li> </ul> </ItemTemplate> </telerik:RadComboBox> </td> <td> <telerik:RadComboBox ID="cboParentTwo" runat="server" DropDownWidth="220px" DataTextField="SampleNumber" DataValueField="SampleID" EmptyMessage="Select..." Height="190px" MarkFirstMatch="true" HighlightTemplatedItems="true" AllowCustomText="true" MaxLength="6" DataSourceID="GetSampleNumber" EnableItemCaching="true" AutoPostBack="false" EnableAutomaticLoadOnDemand="true" ShowMoreResultsBox="true" ItemsPerRequest="20"> <HeaderTemplate> <ul> <li class="colSampleNum">Sample</li> <li class="colSampleNum">Date Submitted</li> </ul> </HeaderTemplate> <ItemTemplate> <ul> <li class="colSampleNum"> <%#Eval("SampleNumber")%> </li> <li class="colSampleNum"> <%#Eval("DateSubmitted")%> </li> </ul> </ItemTemplate> </telerik:RadComboBox> </td> <td> <telerik:RadComboBox ID="cboParentThree" runat="server" DropDownWidth="220px" DataTextField="SampleNumber" DataValueField="SampleID" EmptyMessage="Select..." Height="190px" MarkFirstMatch="true" HighlightTemplatedItems="true" AllowCustomText="true" MaxLength="6" DataSourceID="GetSampleNumber" EnableItemCaching="true" AutoPostBack="false" EnableAutomaticLoadOnDemand="true" ShowMoreResultsBox="true" ItemsPerRequest="20"> <HeaderTemplate> <ul> <li class="colSampleNum">Sample</li> <li class="colSampleNum">Date Submitted</li> </ul> </HeaderTemplate> <ItemTemplate> <ul> <li class="colSampleNum"> <%#Eval("SampleNumber")%> </li> <li class="colSampleNum"> <%#Eval("DateSubmitted")%> </li> </ul> </ItemTemplate> </telerik:RadComboBox> </td> <td colspan="2"> </td> </tr> <tr> <td colspan="2"> <span class="asterisk">*</span><asp:Label ID="Label3" runat="server" Text="EERC Fund:"></asp:Label> <telerik:RadComboBox ID="cboFund" runat="server" DataKeyNames="DateSubmitted" MaxLength="6" DropDownWidth="440px" DataTextField="Fund" DataValueField="FundID" Height="250px" EmptyMessage="Select..." AutoPostBack="true" DataSourceID="sqlFundList" ValidationGroup="Group1" OnSelectedIndexChanged="cboFund_SelectedIndexChanged" OnItemDataBound="cboFund_ItemDataBound" MarkFirstMatch="true" AllowCustomText="true" EnableVirtualScrolling="true" HighlightTemplatedItems="true" CausesValidation="false" EnableItemCaching="true" ShowMoreResultsBox="true" ItemsPerRequest="25" > <HeaderTemplate> <ul> <li class="colFund">Fund</li> <li class="colTitle">Title</li><%-- <li class="colFundManager">Fund Manager</li> <li class="colDate">Start Date</li> <li class="colDate">End Date</li>--%> <li class="colFundStatus" style="text-align: center">Fund Status</li> </HeaderTemplate> <ItemTemplate> <ul> <li class="colFund"> <%# IIf(IsDBNull(Eval("Fund")), " ", Eval("Fund"))%> </li> <li class="colTitle"> <%#Eval("Title")%> </li><%-- <li class="colFundManager"> <%#Eval("PI")%> </li> <li class="colDate"> <%#Eval("StartDate")%> </li> <li class="colDate"> <%#Eval("EndDate")%> </li>--%> <li class="colFundStatus" style="text-align: center"> <%#Eval("FundStatus")%> </li> </ul> </ItemTemplate> </telerik:RadComboBox> <asp:RequiredFieldValidator runat="server" ID="rfvFund" Display="None" ControlToValidate="cboFund" ErrorMessage="Fund is required" ValidationGroup="SetInfo" ></asp:RequiredFieldValidator> </td> <td colspan="2"> <table width="100%"> <tr> <td> Title: </td> <td> <telerik:RadTextBox ID="txtFundTitle" runat="server" ReadOnly="true" ReadOnlyStyle-ForeColor="GrayText" Width="270px" TabIndex="-1"> </telerik:RadTextBox> </td> </tr> </table> </td> <td colspan="2"> <table width="100%"> <tr> <td> Fund Manager: </td> <td> <telerik:RadTextBox ID="txtFundManager" Width="170px" runat="server" ReadOnly="true" ReadOnlyStyle-ForeColor="GrayText" TabIndex="-1"> </telerik:RadTextBox> </td> </tr> </table> </td> </tr> <tr> <td colspan="3"> Confidential/Restricted<br /> <telerik:RadTextBox ID="txtConfidential" runat="server" Rows="2" TextMode="MultiLine" Width="95%" MaxLength="200" EmptyMessage="Optional: Enter confidential comments here..."> </telerik:RadTextBox> </td> <td colspan="3"> <asp:Label ID="lblConfidential" runat="server" Text="" Font-Underline="true" Font-Bold="True" ForeColor="Red"></asp:Label> </td> </tr> <tr> <td> Submitted By: </td> <td> <telerik:RadComboBox ID="cboSubmittedBy" AppendDataBoundItems="true" DataTextField="Personnel" Height="200px" runat="server" DataValueField="PersonnelID" DataSourceID="SqlPersonnelName" OnItemDataBound="cboAnalyst_ItemDataBound" EmptyMessage="Select..." DropDownWidth="200px" AllowCustomText="true" Sort="Descending" MarkFirstMatch="true" ItemsPerRequest="20" EnableVirtualScrolling="true" HighlightTemplatedItems="true"> </telerik:RadComboBox> </td> <td colspan="2"> <div style="float: left;"> Dispose To:</div> <div style="float: left; padding-left: 5px;"> <telerik:RadComboBox ID="cboDispose" AppendDataBoundItems="true" DataTextField="Personnel" Height="200px" runat="server" DataValueField="PersonnelID" DataSourceID="SqlPersonnelName" OnItemDataBound="cboAnalyst_ItemDataBound" EmptyMessage="Select..." DropDownWidth="200px" AllowCustomText="true" CausesValidation="true" Sort="Descending" MarkFirstMatch="true" ItemsPerRequest="20" EnableVirtualScrolling="true" HighlightTemplatedItems="true"> </telerik:RadComboBox> </div> </td> </tr> <tr> <td colspan="3"> <span class="asterisk">*</span>Sample Description<br /> <telerik:RadTextBox ID="txtSampleDesc" runat="server" Width="95%" TextMode="MultiLine" Rows="4" EmptyMessage="Required: Enter sample description here..." > </telerik:RadTextBox> <asp:RequiredFieldValidator runat="server" Display="None" ID="rfvSampleDescription" ControlToValidate="txtSampleDesc" ErrorMessage="Sample Description is required" ValidationGroup="SetInfo" ></asp:RequiredFieldValidator> </td> <td valign="top" rowspan="2" colspan="3"> <asp:Label ID="lblResultsTo" runat="server" Text="Results To"></asp:Label> <div style="padding-left: 10px"> <telerik:RadGrid ID="grdResultsTo" runat="server" AutoGenerateColumns="False" AllowAutomaticUpdates="true" CellSpacing="0" DataSourceID="SqlResultsTo" Width="450px" OnItemInserted="grdResultsTo_ItemInserted" GridLines="None" AllowAutomaticInserts="true" OnItemCommand="grdResultsTo_ItemCommand" AllowAutomaticDeletes="true" Enabled="true" EditItemStyle-Wrap="False" Height="150px"> <MasterTableView DataSourceID="SqlResultsTo" ShowFooter="false" DataKeyNames="PersonnelID,SetNumber" EditMode="InPlace" CommandItemDisplay="Top" AllowSorting="True" ShowHeader="false"> <CommandItemSettings ShowRefreshButton="false " /> <Columns> <telerik:GridBoundColumn DataField="SetNumber" DataType="System.Int32" FilterControlAltText="Filter SetNumber column" HeaderText="SetNumber" UniqueName="SetNumber" Display="false"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="PersonnelID" DataType="System.Int32" FilterControlAltText="Filter PersonnelID column" HeaderText="PersonnelID" UniqueName="PersonnelID" Display="False"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn DataField="ResultsTo" FilterControlAltText="Filter FullName column" HeaderText="Results To" SortExpression="FullName" UniqueName="ResultsTo"> <InsertItemTemplate> <telerik:RadComboBox runat="server" ID="cboResultsTo" AppendDataBoundItems="true" DataTextField="Personnel" Height="200px" DataValueField="PersonnelID" DataSourceID="SqlPersonnelName" OnItemDataBound="cboAnalyst_ItemDataBound" EmptyMessage="Select..." DropDownWidth="200px" Sort="Descending" MarkFirstMatch="true" ItemsPerRequest="20" EnableVirtualScrolling="true" SelectedValue='<%# Bind("PersonnelID") %>'> </telerik:RadComboBox> </InsertItemTemplate> <ItemTemplate> <div> <%#Eval("FullName")%> </div> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridEditCommandColumn ButtonType="LinkButton" UniqueName="EditCommandColumn" Display="true" ItemStyle-Width="125px" ItemStyle-ForeColor="Blue"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="DeleteColumn" ItemStyle-Width="35px" ItemStyle-ForeColor="Blue"> </telerik:GridButtonColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <ClientSettings> <Scrolling AllowScroll="true" UseStaticHeaders="true" /> </ClientSettings> <FilterMenu EnableImageSprites="False"> </FilterMenu> </telerik:RadGrid> </div> </td> </tr> <tr> <td colspan="3"> <label> Handling Considerations</label><br /> <telerik:RadTextBox ID="txtHandling" runat="server" Rows="3" TextMode="MultiLine" Width="95%" MaxLength="250" EmptyMessage="Optional: Enter handling considerations here..." onkeypress="return textboxMultilineMaxNumber(this,250)"> </telerik:RadTextBox> <br /> </td> </tr> </table> <!--- End Sample Info Content ---> <asp:ValidationSummary runat="server" ID="validationSummary" CssClass="validationSummary" /> <br /> <telerik:RadButton ID="btnSave" runat="server" Text="Save"></telerik:RadButton> <telerik:RadButton ID="btnNext" runat="server" Text="Next"></telerik:RadButton> <br /> <div class="clear"> </div> <div> <span class="asterisk">*</span>Required <br /> <br /> </div> <!--- Data sources ---> <asp:SqlDataSource ID="sqlFundlistbyDate" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Get_Select_FundsforSample" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:ControlParameter ControlID="rdpDateSubmitted" Name="DateSubmitted" PropertyName="SelectedDate" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlFundlist" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_AllFunds" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="sqlFundListActive" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_ActiveFunds" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="GetSampleNumber" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_SampleComboBox" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlResultsTo" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" ProviderName="<%$ ConnectionStrings:STARConnectionString.ProviderName %>" OldValuesParameterFormatString="old_{0}" InsertCommand="USP_STAR_Insert_ARLResultsTo" InsertCommandType="StoredProcedure" SelectCommand="USP_STAR_GET_SELECT_ARLResultsTo" SelectCommandType="StoredProcedure" DeleteCommand="USP_STAR_Delete_ARLResultsTo" DeleteCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter Name="SetNumber" SessionField="SetNumber" /> </SelectParameters> <InsertParameters> <asp:SessionParameter Name="SetNumber" SessionField="SetNumber" /> <asp:Parameter Name="PersonnelID" /> </InsertParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlResultsToComboBox" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Get_Select_ResultsToCombo" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter Name="SampleID" SessionField="SampleNumberSessionID" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlPersonnelName" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_PersonnelActive" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlGetSampleType" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_SampleType" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlSampleTypeAttributes" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Get_Select_SampleAttributesGrid" SelectCommandType="StoredProcedure"> <SelectParameters> <asp:SessionParameter Name="SampleID" SessionField="SampleNumberSessionID" /> </SelectParameters> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlGetSampleSource" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_SampleSource" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="sqlCoalName" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_CoalName" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="sqlCoalRank" runat="server" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" SelectCommand="USP_STAR_Select_CoalRank" SelectCommandType="StoredProcedure"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSource12" ConnectionString="<%$ ConnectionStrings:STARConnectionString %>" runat="server" /></div>and here is the ascx.vb code for the first user control:
'Imports FilteringTemplateColumnsImports Telerik.Web.UIImports System.Web.UI.WebControlsImports System.Data.SqlClientImports System.DataImports System.Web.UIImports System.ConfigurationImports System.DiagnosticsImports SystemImports System.CollectionsImports System.ComponentModelImports System.WebImports System.Web.SessionStateImports System.Web.UI.HtmlControlsImports System.XmlImports Ionic.ZipPartial Class Set_Info Inherits System.Web.UI.UserControl Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ''Fix Sample Info table for Firefox 'If Page.Request.Browser.Browser = "Firefox" Then ' txtConfidential.Rows = 1 ' txtSampleDesc.Rows = 3 ' txtHandling.Rows = 2 ' txtFundTitle.Width = 270 ' grdResultsTo.Height = 155 'Else ' txtConfidential.Rows = 2 ' txtSampleDesc.Rows = 4 ' txtHandling.Rows = 3 'End If If (Not Page.IsPostBack) Then rdpDateSubmitted.MaxDate = DateTime.Today rdpDateSubmitted.SelectedDate = Now Dim newSetNumber As Integer 'newSetNumber = 37 Dim strConnection As String = ConfigurationManager.ConnectionStrings("STARConnectionString").ConnectionString Dim Connection As New SqlConnection(strConnection) Connection.Open() Using Command As New SqlCommand("USP_STAR_Insert_NewSetNumber", Connection) Command.CommandType = Data.CommandType.StoredProcedure newSetNumber = Command.ExecuteScalar End Using Session("SetNumber") = newSetNumber 'lblErrors.Text = Session("SetNumber") 'lblErrors.Visible = True lblSetNumber.Text = newSetNumber.ToString() 'Connection.Close() grdResultsTo.Rebind() End If End Sub 'Display only sample number in text of combobox Protected Sub cboParent_ItemDataBound(ByVal sender As Object, ByVal e As RadComboBoxItemEventArgs) Dim item As RadComboBoxItem = DirectCast(e.Item, RadComboBoxItem) item.Text = DirectCast(e.Item.DataItem, DataRowView)("SampleNumber").ToString() End Sub 'ComboBox drop down format for displaying Personnel Names Protected Sub cboAnalyst_ItemDataBound(ByVal sender As Object, ByVal e As RadComboBoxItemEventArgs) Dim item As RadComboBoxItem = DirectCast(e.Item, RadComboBoxItem) item.Text = DirectCast(e.Item.DataItem, DataRowView)("Personnel").ToString() End Sub 'Message to display on success or failure of ResultsTo Grid Protected Sub grdResultsTo_ItemInserted(source As Object, e As GridInsertedEventArgs) Try If e.Exception IsNot Nothing Then e.Item.OwnerTableView.IsItemInserted = False grdResultsTo.Rebind() If e.Exception.Message.Contains("NULL") Then DisplayMessagegrdResultsTo("Null item is invalid to insert.") Else DisplayMessagegrdResultsTo(e.Exception.Message) End If e.ExceptionHandled = True Else End If Catch ex As SqlException End Try End Sub Private Sub DisplayMessagegrdResultsTo(text As String) grdResultsTo.Controls.Add(New LiteralControl(String.Format("<span style='color:red'>{0}</span>", text))) End Sub 'Make edit column visible for inserts, so that automatic insert/cancel links display. Hide once insert is complete. Protected Sub grdResultsTo_ItemCommand(ByVal source As Object, ByVal e As GridCommandEventArgs) Handles grdResultsTo.ItemCommand Dim editColumn As GridEditCommandColumn = e.Item.OwnerTableView.GetColumnSafe("EditCommandColumn") If (e.CommandName = RadGrid.InitInsertCommandName) Then If (e.Item.OwnerTableView.EditMode = GridEditMode.InPlace) Then editColumn.Display = True End If ElseIf (e.CommandName = RadGrid.EditCommandName Or e.CommandName = RadGrid.PerformInsertCommandName Or e.CommandName = RadGrid.CancelCommandName) Then editColumn.Display = False End If End Sub Protected Sub grdResultsTo_ItemCreated(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles grdResultsTo.ItemCreated If (TypeOf e.Item Is GridDataInsertItem AndAlso e.Item.IsInEditMode) Then End If End Sub Protected Sub grdResultsTo_ItemDataBound(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles grdResultsTo.ItemDataBound If TypeOf e.Item Is GridDataInsertItem AndAlso e.Item.OwnerTableView.IsItemInserted Then grdResultsTo.MasterTableView.GetColumn("EditCommandColumn").Visible = True For Each dataItem As GridDataItem In grdResultsTo.MasterTableView.Items DirectCast(dataItem("EditCommandColumn").Controls(0), LinkButton).Visible = False Next Else grdResultsTo.MasterTableView.GetColumn("EditCommandColumn").Visible = False End If End Sub Protected Sub cboResultsTo_ItemDataBound(sender As Object, e As RadComboBoxItemEventArgs) Dim item As RadComboBoxItem = DirectCast(e.Item, RadComboBoxItem) item.Text = DirectCast(e.Item.DataItem, DataRowView)("FullName").ToString() End Sub Private Shared Function GetStatusMessage(ByVal offset As Integer, ByVal total As Integer) As String If total <= 0 Then Return "No matches" End If Return [String].Format("Items <b>1</b>-<b>{0}</b> out of <b>{1}</b>", offset, total) End Function Protected Sub cboParentOne_ItemsRequested(ByVal o As Object, ByVal e As RadComboBoxItemsRequestedEventArgs) cboParentOne.DataSourceID = "SqlDataSource12" Dim selectcommand As String = "SELECT SampleID, SampleNumber, CONVERT(VARCHAR(10), Datesubmitted, 101) as DateSubmitted FROM tblST_Sample WHERE SampleNumber Like'" + e.Text + "%'" + " ORDER BY SampleNumber ASC" SqlDataSource12.SelectCommand = selectcommand cboParentOne.DataTextField = "SampleNumber" cboParentOne.DataValueField = "SampleID" cboParentOne.DataBind() End Sub Protected Sub cboFund_ItemDataBound(sender As Object, e As Telerik.Web.UI.RadComboBoxItemEventArgs) Handles cboFund.ItemDataBound Dim item As RadComboBoxItem = DirectCast(e.Item, RadComboBoxItem) item.Text = DirectCast(e.Item.DataItem, DataRowView)("Fund").ToString() item.Attributes.Add("Title", DirectCast(e.Item.DataItem, DataRowView)("Title").ToString()) item.Attributes.Add("FundManager", DirectCast(e.Item.DataItem, DataRowView)("PI").ToString()) item.Attributes.Add("Confidential", DirectCast(e.Item.DataItem, DataRowView)("Confidential").ToString()) End Sub Protected Sub cboFund_SelectedIndexChanged(sender As Object, e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles cboFund.SelectedIndexChanged ' MsgBox("Test", vbOK, "This is a test") 'lblErrors.Visible = "true" 'lblErrors.Text = "test" If cboFund.SelectedValue <> "" Then txtFundTitle.Text = cboFund.SelectedItem.Attributes.Item("Title").ToString() txtFundManager.Text = cboFund.SelectedItem.Attributes.Item("FundManager").ToString() If cboFund.SelectedItem.Attributes.Item("Confidential").ToString() = "True" Then lblConfidential.Text = "Fund is Confidential" Else lblConfidential.Text = "" End If Else txtFundTitle.Text = "" txtFundManager.Text = "" End If End Sub Protected Sub btnNext_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnNext.Click If ValidateForm() = True Then SaveSetInfo() End If If Session("Saved") = "true" Then GoToNextTab() End If End Sub Private Function ValidateForm() As Boolean Dim msg As String = "" Page.Validate("SetInfo") If (Not Page.IsValid) Then ' Loop through all validation controls to see which ' generated the error(s). Dim oValidator As IValidator For Each oValidator In Page.Validators If oValidator.IsValid = False Then If msg = "" Then msg = oValidator.ErrorMessage Else msg = msg & "<br />" & oValidator.ErrorMessage End If End If Next If ParentValidation() = False Then msg = msg & "<br />Duplicate parent values selected." End If lblErrors.Text = msg lblErrors.Visible = "true" Session("Saved") = "false" Return False ElseIf ParentValidation() = False Then msg = "Duplicate parent values selected." lblErrors.Text = msg lblErrors.Visible = "true" Session("Saved") = "false" Return False Else SaveSetInfo() Return True End If End Function Protected Sub SaveSetInfo() Dim strConn As String = ConfigurationManager.ConnectionStrings("STARConnectionString").ConnectionString Using connection As New SqlConnection(strConn) connection.Open() Using Command As New SqlCommand("USP_STAR_Update_SetInformationTEMP", connection) Try Command.CommandType = Data.CommandType.StoredProcedure Command.Parameters.AddWithValue("@SetNumber", lblSetNumber.Text) Command.Parameters.AddWithValue("@FundID", cboFund.SelectedValue) Command.Parameters.AddWithValue("@DateSubmitted", rdpDateSubmitted.DbSelectedDate) Command.Parameters.AddWithValue("@SampleDescription", txtSampleDesc.Text) Command.Parameters.AddWithValue("@HandlingConsiderations", txtHandling.Text) Command.Parameters.AddWithValue("@SubmittedBy", IIf(cboSubmittedBy.SelectedValue = "", DBNull.Value, cboSubmittedBy.SelectedValue)) Command.Parameters.AddWithValue("@ConfidentialComments", txtConfidential.Text) Command.Parameters.AddWithValue("@DisposeToID", IIf(cboDispose.SelectedValue = "", DBNull.Value, cboDispose.SelectedValue)) Command.Parameters.AddWithValue("@ParentOne", IIf(cboParentOne.SelectedValue = "", DBNull.Value, cboParentOne.SelectedValue)) Command.Parameters.AddWithValue("@ParentTwo", IIf(cboParentTwo.SelectedValue = "", DBNull.Value, cboParentTwo.SelectedValue)) Command.Parameters.AddWithValue("@ParentThree", IIf(cboParentThree.SelectedValue = "", DBNull.Value, cboParentThree.SelectedValue)) Command.ExecuteNonQuery() Session("SetNumber") = lblSetNumber.Text Session("Saved") = "true" ' LoadMemberShipTo(ddlMembers.SelectedValue) Catch ex As Exception If InStr(ex.Message, "Cannot insert duplicate key", CompareMethod.Text) > 0 Then lblErrors.Visible = True lblErrors.ForeColor = Drawing.Color.Red lblErrors.Font.Size = 12 lblErrors.Text = ex.Message Session("Saved") = "false" Else Session("Saved") = "false" lblErrors.Visible = True lblErrors.ForeColor = Drawing.Color.Red lblErrors.Font.Size = 12 lblErrors.Text = ex.GetBaseException.Message.ToString End If End Try End Using End Using End Sub Private Sub GoToNextTab() Session("SetNumber") = lblSetNumber.Text Dim tabStrip As RadTabStrip = NamingContainer.FindControl("rtsAddNewSet") Dim tabAttributes As RadTab = tabStrip.FindTabByText("Attributes") tabAttributes.Enabled = True tabAttributes.Selected = True GoToNextPageView() End Sub Private Sub GoToNextPageView() Dim multiPage As RadMultiPage = NamingContainer.FindControl("rmpAddNewSet") Dim pvAttributes As RadPageView = multiPage.FindPageViewByID("rpvAttributes") If pvAttributes Is Nothing Then pvAttributes = New RadPageView() pvAttributes.ID = "pageAttributes" multiPage.PageViews.Add(pvAttributes) End If pvAttributes.Selected = True End Sub Private Function ParentValidation() As Boolean Dim IsValid As Boolean = True If cboParentTwo.SelectedValue <> "" Then If cboParentOne.SelectedValue = cboParentTwo.SelectedValue Then IsValid = False End If End If If cboParentThree.SelectedValue <> "" Then If cboParentOne.SelectedValue = cboParentThree.SelectedValue Then IsValid = False End If End If If cboParentThree.SelectedValue <> "" Then If cboParentTwo.SelectedValue = cboParentThree.SelectedValue Then IsValid = False End If End If Return IsValid End Function Protected Sub btnSave_Click(sender As Object, e As System.EventArgs) Handles btnSave.Click If ValidateForm() = True Then SaveSetInfo() End If End Sub Protected Sub rtsAddNewSet_TabClick(sender As Object, e As Telerik.Web.UI.RadTabStripEventArgs) If ValidateForm() = True Then SaveSetInfo() End If End SubEnd Class
Any input is greatly appreciated. I was looking through the Demo's online but didn't find anything very thorough with Multipage and user controls.
Thanks again,
AP
