This is a migrated thread and some comments may be shown as answers.

Custom Validator for a textbox in the Grid

3 Answers 674 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Bhavana
Top achievements
Rank 1
Bhavana asked on 01 Jun 2013, 06:23 AM
Hi,

I have a RadGrid that has textboxes in the EditForm. I am using a custom validator and calling a Javascript function. But the button is not firing the custom validator and the javascript is not getting called.

Also please help with how to get the textbox control value in the javascript once the script is working.

the below code is part of the RadGrid Edit Form
 <td style="width: 25%">
                                                    <telerik:RadTextBox ID="txtPartNo" runat="server" class="txtbox" Width="90%">
                                                    </telerik:RadTextBox>
                                                    <asp:RequiredFieldValidator runat="server" ID="rfvPartNo" ValidationGroup="Part" ErrorMessage="*" ControlToValidate="txtPartNo"></asp:RequiredFieldValidator>
                                                    <asp:CustomValidator runat="server" ID="cvPartNo" ValidationGroup="Part" ErrorMessage="###" ClientValidationFunction="ValidatePartNo"></asp:CustomValidator>
                                                </td>

Here is the javascript
 function ValidatePartNo(Source, args) {alert('hi');
                var grid = $find("<%= rgPartsInfo.ClientID %>");
alert(grid.get_masterTableView().get_dataItems()[0]);
}

Thank You,
bhavana

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 03 Jun 2013, 09:41 AM
Hi Bhavana,

Please try the following code snippet,its an example i have tried.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True"
    DataSourceID="SqlDataSource1" AllowSorting="true" AutoGenerateEditColumn="true"
    OnItemCreated="RadGrid1_ItemCreated">
    <MasterTableView>
        <Columns>
            <telerik:GridBoundColumn SortExpression="OrderID" HeaderText="OrderID" DataField="OrderID">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn DataField="ShipPostalCode" HeaderText="ShipPostalCode" UniqueName="ShipPostalCode">
            </telerik:GridBoundColumn>
            <telerik:GridBoundColumn HeaderText="Freight" DataField="Freight" UniqueName="Freight">
            </telerik:GridBoundColumn>
            <telerik:GridTemplateColumn>
                <EditItemTemplate>
                    name:
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <asp:Button ID="Button1" runat="server" Text="Submit" />
                    <asp:RequiredFieldValidator runat="server" ID="rfvPartNo" ErrorMessage="*" ValidationGroup="Part"
                        ControlToValidate="TextBox1"></asp:RequiredFieldValidator>
                    <asp:CustomValidator runat="server" ID="cvPartNo" ValidationGroup="Part" ErrorMessage="###"
                        ClientValidationFunction="ValidatePartNo"></asp:CustomValidator>
                </EditItemTemplate>
            </telerik:GridTemplateColumn>
        </Columns>
    </MasterTableView>
</telerik:RadGrid>

C#:
protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
 if (e.Item is GridEditableItem && e.Item.IsInEditMode)
  {
     GridEditableItem editedItem = (GridEditableItem)e.Item;
     ((LinkButton)editedItem.FindControl("UpdateButton")).ValidationGroup = "Part";
  }
}

JAVASCRIPT:
<script id="scr" type="text/javascript">
function ValidatePartNo(Source, args)
{
  var grid = $find("<%= RadGrid1.ClientID%>");
    alert(grid.get_masterTableView().get_dataItems()[0]);
   // var txt = masterTable.get_dataItems()[0].findControl('TextBox1'); //To access the textbox control
}
</script>

Thanks,
Princy
0
Bhavana
Top achievements
Rank 1
answered on 05 Jun 2013, 08:07 PM
Thank You Princy for the reply, but the solution doesnot work. 
I am pasting the entire code, Please check.


<telerik:RadGrid OnItemCreated="rgPartsInfo_ItemCreated" OnNeedDataSource="rgPartsInfo_NeedDataSource" OnDeleteCommand="rgPartsInfo_DeleteCommand" OnCancelCommand="rgPartsInfo_CancelCommand"
                                        ID="rgPartsInfo" runat="server" AllowPaging="True" AllowSorting="True" ShowGroupPanel="True"
                                        Width="950px" Height="315px" AllowMultiRowSelection="True" AutoGenerateColumns="False"
                                        GridLines="None">
                                        <HeaderContextMenu EnableEmbeddedSkins="False">
                                        </HeaderContextMenu>
                                        <ValidationSettings EnableValidation="true" ValidationGroup="Part" CommandsToValidate="PerformInsert, Update" />
                                        <PagerStyle Mode="NextPrevAndNumeric" AlwaysVisible="true" PrevPageToolTip="Previous"
                                            NextPagesToolTip="Next" />
                                        <GroupingSettings CaseSensitive="false" ShowUnGroupButton="true" UnGroupButtonTooltip="Click here to ungroup" />
                                        <MasterTableView Name="PartsInfo" EditMode="EditForms" CommandItemDisplay="Top" DataKeyNames="PartNo">
                                            <Columns>
                                                <telerik:GridClientSelectColumn UniqueName="CheckboxSelectColumn" HeaderStyle-Width="5%">
                                                    <HeaderStyle Width="5%"></HeaderStyle>
                                                </telerik:GridClientSelectColumn>
                                                <telerik:GridBoundColumn DataField="Quantity" HeaderText="Quantity" SortExpression="Quantity"
                                                    UniqueName="Quantity">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn DataField="PartNo" HeaderText="Part #" SortExpression="PartNo"
                                                    UniqueName="PartNo">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn DataField="Description" HeaderText="Description" UniqueName="Description">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn DataField="LoudInvNo" HeaderText="LOUD Invoice #" UniqueName="LoudInvNo">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn DataField="UnitCost" HeaderText="Unit Cost" UniqueName="UnitCost">
                                                </telerik:GridBoundColumn>
                                                <telerik:GridBoundColumn DataField="ExtendedCost" HeaderText="Extended Cost" UniqueName="ExtendedCost">
                                                </telerik:GridBoundColumn>
                                            </Columns>
                                            <EditFormSettings ColumnNumber="3"  EditFormType="Template" CaptionFormatString="Edit details"
                                                CaptionDataField="PartNo">
                                                <EditColumn ButtonType="ImageButton" InsertText="Insert" UpdateText="Update" UniqueName="EditCommandColumn1"
                                                    CancelText="Cancel">
                                                </EditColumn>
                                                <FormTemplate >
                                                    <table cellspacing="4" cellpadding="1" width="100%" border="0">
                                                        <tbody>
                                                            <tr>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblQuantity" CssClass="labelTitle" ForeColor="Black" runat="server"
                                                                        EnableViewState="False" Text="Quantity"></asp:Label>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <telerik:RadNumericTextBox ID="txtQuantity" AutoPostBack="true" OnTextChanged="txtUnitCost_TextChanged"
                                                                        runat="server" class="txtbox" Width="90%">
                                                                    </telerik:RadNumericTextBox>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblPartNo" CssClass="labelTitle" ForeColor="Red" runat="server" EnableViewState="False"
                                                                        Text="Part #"></asp:Label>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <telerik:RadTextBox ID="txtPartNo" runat="server" class="txtbox" Width="90%">
                                                                    </telerik:RadTextBox>
                                                                        <asp:CustomValidator runat="server" ValidationGroup="Part" ClientValidationFunction="ValidatePartNo" ErrorMessage="##" ID="cvPartNo"></asp:CustomValidator>
                                                                    </td>
                                                            </tr>
                                                            <tr>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblDescription" CssClass="labelTitle" ForeColor="Red" runat="server"
                                                                        EnableViewState="False" Text="Description"></asp:Label>
                                                                </td>
                                                                <td colspan="3">
                                                                    <telerik:RadTextBox ID="txtDescription" runat="server" TextMode="MultiLine" Height="70px"
                                                                        class="txtbox" Width="96%">
                                                                    </telerik:RadTextBox>
                                                                     <asp:RequiredFieldValidator runat="server" ID="rfvDesc" ValidationGroup="Part"
                                                                        ErrorMessage="*" ControlToValidate="txtDescription"></asp:RequiredFieldValidator>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblInvoiceNo" CssClass="labelTitle" ForeColor="Red" runat="server"
                                                                        EnableViewState="False" Text="LOUD Invoice #"></asp:Label>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <telerik:RadTextBox ID="txtInvoiceNo" runat="server" class="txtbox" Width="90%">
                                                                    </telerik:RadTextBox>
                                                                     <asp:RequiredFieldValidator runat="server" ID="rfvInvNo" ValidationGroup="Part"
                                                                        ErrorMessage="*" ControlToValidate="txtInvoiceNo"></asp:RequiredFieldValidator>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    &nbsp;
                                                                </td>
                                                                <td style="width: 25%">
                                                                    &nbsp;
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblUnitCost" CssClass="labelTitle" ForeColor="Red" runat="server"
                                                                        EnableViewState="False" Text="Unit Cost"></asp:Label>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <telerik:RadNumericTextBox AutoPostBack="true" OnTextChanged="txtUnitCost_TextChanged"
                                                                        ID="txtUnitCost" runat="server" class="txtbox" Width="90%">
                                                                    </telerik:RadNumericTextBox>
                                                                     <asp:RequiredFieldValidator runat="server" ID="rfvUnitCost" ValidationGroup="Part"
                                                                        ErrorMessage="*" ControlToValidate="txtUnitCost"></asp:RequiredFieldValidator>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <asp:Label ID="lblExtendedCost" CssClass="labelTitle" ForeColor="Black" runat="server"
                                                                        EnableViewState="False" Text="Extended Cost"></asp:Label>
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <telerik:RadNumericTextBox ID="txtExtendedCost" runat="server" class="txtbox" Width="90%">
                                                                    </telerik:RadNumericTextBox>
                                                                </td>
                                                            </tr>
                                                            <tr>
                                                                <td style="width: 25%">
                                                                    &nbsp;
                                                                </td>
                                                                <td style="width: 25%">
                                                                    &nbsp;
                                                                </td>
                                                                <td style="width: 25%">
                                                                    &nbsp;
                                                                </td>
                                                                <td style="width: 25%">
                                                                    <asp:LinkButton ID="btnSave" runat="server" ValidationGroup="Part" ToolTip="Save Part"><img  alt="" src="../../images/tick.gif" style="vertical-align:middle" /></asp:LinkButton>
                                                                    
                                                                    &nbsp;
                                                                    <asp:LinkButton ID="btnCancel" CausesValidation="false" CommandName="Cancel" runat="server"  ToolTip="Cancel"><img  alt="" src="../../images/cancel.gif" style="vertical-align:middle" /></asp:LinkButton>
                                                                    
                                                                </td>
                                                            </tr>
                                                        </tbody>
                                                    </table>
                                                </FormTemplate>
                                            </EditFormSettings>
                                            <CommandItemTemplate>
                                                <div style="padding: 5px 5px">
                                                    <span style="float: left;"><span id="spanAdd" runat="server" style="margin-left: 5px;
                                                        margin-top: 5px; margin-bottom: 5px; margin-right: 10px;">
                                                        <asp:LinkButton ID="btnInitInsert" runat="server" CommandName="InitInsert" CausesValidation="false">
                                                            <img id="imgAdd" runat="server" style="border: 0px; vertical-align: top;" alt=""
                                                                src="~/images/telerik/AddRecord.png" />
                                                            Add new Part</asp:LinkButton>
                                                    </span><span id="spanDelete" runat="server" style="margin-left: 5px; margin-top: 5px;
                                                        margin-bottom: 5px; margin-right: 10px;">
                                                        <asp:LinkButton ID="btnDelete" runat="server" CommandName="Delete" OnClientClick="return AmountDelete();"
                                                            CausesValidation="false">
                                                            <img id="imgDelete" runat="server" style="border: 0px; vertical-align: top;" alt=""
                                                                src="~/images/telerik/Delete.png" />Delete Part</asp:LinkButton>
                                                    </span></span>
                                                </div>
                                            </CommandItemTemplate>
                                            <RowIndicatorColumn Visible="True">
                                            </RowIndicatorColumn>
                                        </MasterTableView>
                                        <ClientSettings AllowColumnsReorder="True" AllowAutoScrollOnDragDrop="true" EnableRowHoverStyle="true"
                                            AllowKeyboardNavigation="true" ReorderColumnsOnClient="true" AllowDragToGroup="True"
                                            Scrolling-AllowScroll="true">
                                            <Selecting AllowRowSelect="True" />
                                            <Scrolling AllowScroll="True" UseStaticHeaders="True"></Scrolling>
                                            <Resizing AllowColumnResize="true" EnableRealTimeResize="true" AllowRowResize="true" />
                                            <ClientMessages DragToGroupOrReorder="Select All" />
                                        </ClientSettings>
                                        <FilterMenu EnableEmbeddedSkins="false">
                                        </FilterMenu>
                                    </telerik:RadGrid>
0
Princy
Top achievements
Rank 2
answered on 21 Jun 2013, 07:50 AM
Hi,

I tried to replicate the issue,but unfortunately its working fine at my end.Sorry i couldn't help.

Thanks,
Princy
Tags
Grid
Asked by
Bhavana
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Bhavana
Top achievements
Rank 1
Share this question
or