Posts
349
Comments
106
Trackbacks
4
Wednesday, February 10, 2010
Validierung von Telerik RadComboBoxen

Standardmäßig ist es umständlich eine Telerik RadComboBox zu validieren, da diese nicht als klassische ASP.NET Dropdownliste sondern als Input-Feld mit dazu passenden Layern gerendert wird.

Hier ein Beispiel wie man eine Telerik RadComboBox clientseitig per Javascript validieren kann:

Zunächst  die Telerik RadComboBox mit einem klassischen CustomValidator:

<telerik:RadComboBox ID="ddlAnrede"
    runat="server" Skin="Telerik" Width="200px"
    DataTextField="Value"
    DataValueField="Key"
    OnClientBlur="validateCombo"
    SelectedValue='<%# Bind("Anrede") %>'>
    <Items>
        <telerik:RadComboBoxItem TextBitte wählen” Value="" runat="server" />                                               
        <telerik:RadComboBoxItem Text="Herr" Value="Herr" runat="server" />
        <telerik:RadComboBoxItem Text="Frau" Value="Frau" runat="server" />
    </Items>
</telerik:RadComboBox>
<span style='color:Red'>
    <asp:CustomValidator ID="CustomValidator2"
       style='visibility:hidden'
       runat="server"
       ErrorMessage="&nbsp;*"
       validationgroup="insert"
       ClientValidationFunction="validateComboBox" >
    </asp:CustomValidator>
</span>

Diese RadCombobox wird mittels der Javascript-Funktion “validateComboBox” validiert:

<script type="text/javascript">
    function validateComboBox(source, args) {
        args.IsValid = false;
        var combo = $find('<%= getClientID("ddlAnrede") %>');
        var value = combo.get_value();
        var spanErrorAnrede = document.getElementById('<%= getClientID("CustomValidator1") %>');
        if (value.length == 0) {
            spanErrorAnrede.style.visibility = 'visible';
            args.IsValid = false;
        }
        else {
            spanErrorAnrede.style.visibility = 'hidden';
            args.IsValid = true;
        }
    }
</script>
 

 
Hat man mehrere RadComboboxen in einem Formular oder befindet sich diese in einem Listview – und die ID lässt ich nicht mittels der Methode getClientID ermitteln - dann kann man folgende Javascript-Funktion für die Validierung verrwenden:

 <telerik:RadCodeBlock ID="RadCodeBlock789" runat="server">
    <script type="text/javascript">

        function Validate(source, clientside_argument) {
            var sourceElement = document.getElementById(source.id);
            var comboInput = document.getElementByI(sourceElement.controltovalidate + "_Input");
            if (clientside_argument.Value == "--- Bitte wählen ---") {
                comboInput.style.background = "red";
                clientside_argument.IsValid = false;
            }
            else {
                comboInput.style.background = "";
                clientside_argument.IsValid = true;
            }
        }
    </script>
</telerik:RadCodeBlock>
posted @ Wednesday, February 10, 2010 1:56 PM | Feedback (0)