Hello,
I'm having a lot of trouble figuring this out. I have a web user control that loads inside a tabstrip tab. This user control has a button on it. When the user clicks on this button a RadPageView is loaded with another web user control as a modal popup window. The modal window has several RadComboBoxes and a few RadTextBoxes. I want to use a CustomValidator(s) to validate the combobox(s). If nothing has been selected the validation should fail. The CustomValidator has the setting for ClientValidationFunction set for a JavaScript function. I cannot get my code to execute the client-side validation function for the CustomValidator.
If anyone can help me figure this out I'd really appreciate it. I've been struggling with this for the past week.
Thanks.
The button and the validation summary are ajaxified within the RadAjaxManager that resides in the Master Page for the application:
This is the markup for the RadWindow:
This is the code I use to load the RadPageView with the popup user control:
This is the markup for my popup user control "wucInventoryAddAHU.ascx":
This is the server-side code for the button 'btnAdd':
I'm having a lot of trouble figuring this out. I have a web user control that loads inside a tabstrip tab. This user control has a button on it. When the user clicks on this button a RadPageView is loaded with another web user control as a modal popup window. The modal window has several RadComboBoxes and a few RadTextBoxes. I want to use a CustomValidator(s) to validate the combobox(s). If nothing has been selected the validation should fail. The CustomValidator has the setting for ClientValidationFunction set for a JavaScript function. I cannot get my code to execute the client-side validation function for the CustomValidator.
If anyone can help me figure this out I'd really appreciate it. I've been struggling with this for the past week.
Thanks.
The button and the validation summary are ajaxified within the RadAjaxManager that resides in the Master Page for the application:
<
telerik:RadAjaxManager
ID
=
"RadAjaxManager1"
runat
=
"server"
EnableAJAX
=
"true"
ClientIDMode
=
"Static"
>
<
AjaxSettings
>
<
telerik:AjaxSetting
AjaxControlID
=
"btnAdd"
>
<
UpdatedControls
>
<
telerik:AjaxUpdatedControl
ControlID
=
"btnAdd"
/>
<
telerik:AjaxUpdatedControl
ControlID
=
"pnlValidatorSummary"
/>
</
UpdatedControls
>
</
telerik:AjaxSetting
>
</
AjaxSettings
>
</
telerik:RadAjaxManager
>
This is the markup for the RadWindow:
<
telerik:RadWindowManager
ID
=
"rwmWindowManager"
runat
=
"server"
EnableEmbeddedSkins
=
"true"
Skin
=
"Metro"
PreserveClientState
=
"true"
>
<
Windows
>
<
telerik:RadWindow
ID
=
"rdwAddNewAHU"
runat
=
"server"
Modal
=
"true"
OnInit
=
"rdwAddNewAHU_Init"
Height
=
"550"
Width
=
"600"
Behaviors
=
"Close"
DestroyOnClose
=
"true"
ReloadOnShow
=
"true"
ShowContentDuringLoad
=
"false"
OnClientClose
=
"OnClientClose"
>
<
ContentTemplate
>
<
telerik:RadMultiPage
ID
=
"rmpAddNewAHU"
runat
=
"server"
SelectedIndex
=
"0"
>
</
telerik:RadMultiPage
>
</
ContentTemplate
>
</
telerik:RadWindow
>
</
Windows
>
</
telerik:RadWindowManager
>
<
asp:Button
ID
=
"btnAddNewAHU"
runat
=
"server"
OnClientClick
=
"openwin();return false"
Text
=
"Add New AHU"
Visible
=
"false"
/>
<
telerik:RadScriptBlock
ID
=
"rsbInventory"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
function openwin() {
window.radopen(null, "rdwAddNewAHU");
}
</
script
>
</
telerik:RadScriptBlock
>
This is the code I use to load the RadPageView with the popup user control:
private void LoadMyUserControl(string controlName, Control parent)
{
parent.Controls.Clear();
RadPageView pageView = new RadPageView();
UserControl ctrl = (UserControl)LoadControl(controlName);
string userControlID = controlName.Split('.')[0];
ctrl.ID = userControlID.Replace("/", "").Replace("~", "");
pageView.Controls.Add(ctrl);
parent.Controls.Add(pageView);
}
protected void rdwAddNewAHU_Init(object sender, System.EventArgs e)
{
int roleID = ApplicationInformation.GetRoleID();
switch (roleID)
{
case 1: //Read Only
btnAddNewAHU.Visible = false;
break;
default: //Suggesters and Approvers
btnAddNewAHU.Visible = true;
LoadMyUserControl(@"~/Modules/EspsMT/wucInventoryAddAHU.ascx", rmpAddNewAHU);
rdwAddNewAHU.OpenerElementID = btnAddNewAHU.ClientID;
break;
}
}
This is the markup for my popup user control "wucInventoryAddAHU.ascx":
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="wucInventoryAddAHU.ascx.cs" Inherits="FACApps.Module.ESPSMT.wucInventoryAddAHU" %>
<
telerik:RadScriptBlock
ID
=
"rsbInventory"
runat
=
"server"
>
<
script
type
=
"text/javascript"
>
<!--Initialize the controls on the popup window during close-->
function OnClientClose(sender, eventArgs) {
var comboBoxes = ['cmbBuildings',
'cmbAHUManufacturers',
'cmbAHUTypes',
'cmbAHUConfigurations',
'cmbAHUHousingVersion',
'cmbAHUSpecialUse',
'cmbAHULocation',
'cmbAHUCanisters',
'cmbAHUCommissionMonth',
'cmbAHUCommissionYear'];
var textBoxes = ['txtAHUUnitTag',
'txtAHUAccessRequirements',
'txtAHUComments'];
for (i in comboBoxes) {
ctrl = comboBoxes[i];
comboBox = $find(ctrl);
comboBox.trackChanges();
comboBox.get_items().getItem(0).select();
comboBox.updateClientState();
comboBox.commitChanges();
}
for (i in textBoxes) {
ctrl = textBoxes[i];
textBox = $find(ctrl);
textBox.set_value(null);
}
document.getElementById('vsValidationSummary').style.display = 'none';
}
function clientValidationBuildings(sender, args) {
if ($find("<%=cmbBuildings.ClientID%>") > 0) {
alert("valid");
arg.IsValid = true;
}
else {
alert("not valid");
arg.IsValid = false;
}
}
</
script
>
</
telerik:RadScriptBlock
>
<
div
style
=
"margin-left: 10px;"
>
<
asp:Panel
ID
=
"pnlValidatorSummary"
runat
=
"server"
>
<
asp:ValidationSummary
ID
=
"vsValidationSummary"
runat
=
"server"
Width
=
"480px"
BorderStyle
=
"None"
ForeColor
=
"Red"
HeaderText
=
"* Please enter required values."
ClientIDMode
=
"Static"
ValidationGroup
=
"vgp"
></
asp:ValidationSummary
>
</
asp:Panel
>
</
div
>
<
div
style
=
"margin-left: 10px;"
>
<
p
>Select a building:</
p
>
<
telerik:RadComboBox
ID
=
"cmbBuildings"
runat
=
"server"
Width
=
"480"
MaxHeight
=
"300"
OnDataBound
=
"cmbBuildings_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
ValidationGroup
=
"vgp"
></
telerik:RadComboBox
>
<
asp:CustomValidator
ID
=
"cv"
ValidateEmptyText
=
"true"
ClientValidationFunction
=
"clientValidationBuildings"
EnableClientScript
=
"true"
ControlToValidate
=
"cmbBuildings"
runat
=
"server"
ValidationGroup
=
"vgp"
>*</
asp:CustomValidator
>
<
hr
/>
<
p
>Enter New Air Handler Unit Details:</
p
>
<
asp:Label
runat
=
"server"
>Air Handling Unit Tag:</
asp:Label
><
telerik:RadTextBox
ID
=
"txtAHUUnitTag"
runat
=
"server"
ClientIDMode
=
"Static"
></
telerik:RadTextBox
><
br
/>
<
asp:Label
runat
=
"server"
>Select Manufacturer:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUManufacturers"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUManufacturers_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Select Type:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUTypes"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUTypes_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Select Configuration:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUConfigurations"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUConfigurations_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Select Housing Version:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUHousingVersion"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUHousingVersion_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Special Use:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUSpecialUse"
runat
=
"server"
MaxHeight
=
"150"
ClientIDMode
=
"Static"
NoWrap
=
"true"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"--Select--"
Value
=
"-1"
/>
<
telerik:RadComboBoxItem
Text
=
"No"
Value
=
"0"
/>
<
telerik:RadComboBoxItem
Text
=
"Yes"
Value
=
"1"
/>
</
Items
>
</
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Select Location:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHULocation"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHULocation_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Access Requirements:</
asp:Label
><
telerik:RadTextBox
ID
=
"txtAHUAccessRequirements"
runat
=
"server"
Rows
=
"1"
ClientIDMode
=
"Static"
></
telerik:RadTextBox
><
br
/>
<
asp:Label
runat
=
"server"
>Canisters:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUCanisters"
runat
=
"server"
MaxHeight
=
"150"
ClientIDMode
=
"Static"
NoWrap
=
"true"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"--Select--"
Value
=
"-1"
/>
<
telerik:RadComboBoxItem
Text
=
"0"
Value
=
"0"
/>
<
telerik:RadComboBoxItem
Text
=
"3"
Value
=
"3"
/>
</
Items
>
</
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Comments:</
asp:Label
><
telerik:RadTextBox
ID
=
"txtAHUComments"
runat
=
"server"
Rows
=
"5"
ClientIDMode
=
"Static"
></
telerik:RadTextBox
><
br
/>
<
asp:Label
runat
=
"server"
>Test/Commission Month:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUCommissionMonth"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUCommissionMonth_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Label
runat
=
"server"
>Year:</
asp:Label
><
telerik:RadComboBox
ID
=
"cmbAHUCommissionYear"
runat
=
"server"
MaxHeight
=
"150"
OnDataBound
=
"cmbAHUCommissionYear_DataBound"
AllowCustomText
=
"false"
ClientIDMode
=
"Static"
NoWrap
=
"true"
></
telerik:RadComboBox
>
<
br
/>
<
asp:Button
ID
=
"btnAdd"
runat
=
"server"
Text
=
"Enter Air Handler"
OnClick
=
"btnAdd_Click"
CausesValidation
=
"true"
ValidationGroup
=
"vgp"
/>
</
div
>
This is the server-side code for the button 'btnAdd':
protected void btnAdd_Click(object sender, EventArgs e)
{
if (Page.IsValid)
{
int roleID = ApplicationInformation.GetRoleID();
switch (roleID)
{
case 3: // Suggesters
case 5: // Suggesters
//Perform some task
break;
case 7: // Approvers
case 9: // Approvers
//Perform some task
break;
}
}
}