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

how to get particular row values in java script using Textbox onblur

7 Answers 681 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Dhamodharan
Top achievements
Rank 1
Dhamodharan asked on 19 Jan 2011, 08:36 AM
Hi,

I am using Nested grid in my app. i have three columns in my grid.

Three column like plan name(Label), max amount(label) and user enter amount (Text box)

all are using Itemtemplate. i want to avoid user enter amount should not greater then max amount. if user enter amount greater then max amount means alert message should be display like  (Plan name || cann't accept more then || max amount) onbluer time.

please anyone help me how to get entering text box row value in onbluer time.

Please help,
I have also attached image.


Thanks in Advance,
Dhamu,

7 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 19 Jan 2011, 09:06 AM
Hello Dhamu,

Check out the following code snippet which shows how to get the TextBox value in 'onblur' event.

ASPX:
<telerik:GridTemplateColumn>
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server" onblur="validate(this)"></asp:TextBox>
    </ItemTemplate>
</telerik:GridTemplateColumn>

JavaScript:
<script type="text/javascript">
        function validate(textbox) {
           if (textbox.value > 1000)
               alert("not valid");
          }
   </script>

Thanks,
Princy.
0
Dhamodharan
Top achievements
Rank 1
answered on 19 Jan 2011, 09:10 AM
Hi Princy,

thanks for your reply.

I want check maximum amount in static. please see the image. so how to i get the label value.

Please see the image. i want to check the checkbox value into nearby column label value.

Please give me a idea.

and also i am using nested grid.

Thanks,
Dhamu.
0
Princy
Top achievements
Rank 2
answered on 19 Jan 2011, 09:39 AM
Hello Dhamu,

You can attach 'onblur' event to TextBox from code behind and pass the Label ClientID to the event handler. In the event handler access the Label control value like below.

ASPX:
<DetailTables>
    <telerik:GridTableView Name="DetailTable" runat="server">
        <Columns>
            <telerik:GridTemplateColumn>
            <ItemTemplate>
                <asp:Label ID="lblmaxamount" runat="server"
                          Text='<%#Eval("max_amount") %>'></asp:Label>
            </ItemTemplate>
        </telerik:GridTemplateColumn>
        <telerik:GridTemplateColumn>
            <ItemTemplate>
                <asp:TextBox ID="txtamount" runat="server"></asp:TextBox>
            </ItemTemplate>
           </telerik:GridTemplateColumn>
        </Columns>
               .  .   .  .   .   .
      

C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem && e.Item.OwnerTableView.Name=="DetailTable")
        //check with name of TableView to identify the grid row in hierarchy
        {
            GridDataItem item = (GridDataItem)e.Item;
            Label lbl = (Label)item.FindControl("lblmaxamount");
            TextBox txtbox = (TextBox)item.FindControl("txtamount");
            txtbox.Attributes.Add("onblur","validate('"+lbl.ClientID+"',this);");
        }
    }

JavaScript:
function RowDblClick(sender, eventArgs) {
        function validate(label, textbox) {
            var lblmaxamt = document.getElementById(label).innerHTML;//accessing label value
            .  .   .  .  .  .
    }

Thanks,
Princy.
0
Dhamodharan
Top achievements
Rank 1
answered on 19 Jan 2011, 09:57 AM
Hi Princy,

Thanks for your reply.

But i am using NestedView Template

<NestedViewTemplate>
                                    <telerik:RadGrid ID="rgFlex" runat="server" AutoGenerateColumns="False" OnItemDataBound="rgFlex_OnItemDataBound"
                                        DataSourceID="sdsFlexBenefit" Width="700px" GridLins="Both">
                                        <MasterTableView AutoGenerateColumns="false" CommandItemDisplay="Top">
                                        
                                            <Columns>
                                                <telerik:GridTemplateColumn HeaderText="Benefit" HeaderStyle-Font-Bold="true" HeaderStyle-HorizontalAlign="Center" UniqueName="Plans">
                                                    <ItemTemplate>
                                                        <asp:Label ID="lblFlenBenefit" SkinID="NoBold" runat="server" Text='<%# Eval("flex_benefit") %>'></asp:Label>                                                   
                                                    </ItemTemplate>
                                                </telerik:GridTemplateColumn>
                                                <telerik:GridTemplateColumn HeaderText="Max Annual Limit" HeaderStyle-Font-Bold="true"
                                                    HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Right" UniqueName="MaxAnnualLimit">
                                                    <ItemTemplate>
                                                        <asp:Label ID="lblFlexAnnContrib" SkinID="NoBold" runat="server" Text='<%# String.Format("{0:c}",Eval("annual_limit"))  %>'></asp:Label>                                                    
                                                    </ItemTemplate>
                                                </telerik:GridTemplateColumn>
                                                <telerik:GridTemplateColumn  HeaderStyle-Font-Bold="true" HeaderText="Deductions"
                                                    HeaderStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Right" UniqueName="Payroll_deduction">
                                                    <ItemTemplate>
                                                    <telerik:RadNumericTextBox ShowSpinButtons="false" style="text-align:right" IncrementSettings-InterceptArrowKeys="true"
                                                 IncrementSettings-InterceptMouseWheel="false"
                                                runat="server" NumberFormat-GroupSeparator="" DecimalDigits="0" CausesValidation="true"
                                                NumberFormat-DecimalDigits="0" NumberFormat-AllowRounding="false" NumberFormat-PositivePattern="$n" MinValue="0"
                                                ID="txtFlexPayrollDeduct" Width="70px">                                           
                                            </telerik:RadNumericTextBox>
                                                   </ItemTemplate>
                                                </telerik:GridTemplateColumn>
                                            </Columns>
                                        </MasterTableView>
                                    </telerik:RadGrid>
                                </NestedViewTemplate>

And also i am using code behind

  If TypeOf e.Item Is GridDataItem AndAlso e.Item.OwnerTableView.Name = "rgFlex" Then
            'check with name of TableView to identify the grid row in hierarchy
            Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
            Dim lbl As Label = DirectCast(item.FindControl("lblFlexAnnContrib"), Label)
            Dim txtbox As RadNumericTextBox = DirectCast(item.FindControl("txtFlexPayrollDeduct"), RadNumericTextBox)
            txtbox.Attributes.Add("onblur", "validate('" + lbl.ClientID + "',this);")
        End If

But always e.Item.OwnerTableView.Name was null values.

how to check with nestedViewTemplate with same logic.

Please give me idea.


Thanks,
Dhamu.

0
Dhamodharan
Top achievements
Rank 1
answered on 19 Jan 2011, 10:33 AM
Hi Princy,

Please give any idea....

It is very urgent.


Thanks a lot,
Dhamu.
0
Princy
Top achievements
Rank 2
answered on 19 Jan 2011, 11:20 AM
Hello Dhamu,

I thought you have RadGrid with DetailTable. If you have grid inside NestedViewTemplate, try the above code in ItemCreated event without this condition e.Item.OwnerTableView.Name = "rgFlex".

VB.NET:
Protected Sub RadGrid1_ItemCreated(sender As Object, e As GridItemEventArgs)
    If TypeOf e.Item Is GridDataItem  Then
       Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
           Dim lbl As Label = DirectCast(item.FindControl("lblFlexAnnContrib"), Label)
           Dim txtbox As RadNumericTextBox = DirectCast(item.FindControl("txtFlexPayrollDeduct"), RadNumericTextBox)
           txtbox.Attributes.Add("onblur", "validate('" + lbl.ClientID + "',this);")
        End If
End Sub


Thanks,
Princy.
0
Dhamodharan
Top achievements
Rank 1
answered on 19 Jan 2011, 11:30 AM
Hi Princy,

I used your logic but little bit changes for Nested Template view. i am using this code it is working fine.

Thanks for your valuable help.


 If TypeOf e.Item Is GridNestedViewItem Then          
            Dim item As GridNestedViewItem = DirectCast(e.Item, GridNestedViewItem)
            Dim Grid As RadGrid = DirectCast(item.FindControl("rgFlex"), RadGrid)
            If Grid.MasterTableView.Items.Count > 0 Then
                Dim NesGrdcnt As Integer = 0
                For Each FlexItem As GridDataItem In Grid.MasterTableView.Items               
                    Dim lblFlenBenefit As Label = DirectCast(Grid.Items(NesGrdcnt).FindControl("lblFlenBenefit"), Label)                  
                    Dim hfMaxAnnLmt As HiddenField = DirectCast(Grid.Items(NesGrdcnt).FindControl("hfMaxAnnLmt"), HiddenField)
                    Dim txtFlexPayrollDeduct As RadNumericTextBox = DirectCast(Grid.Items(NesGrdcnt).FindControl("txtFlexPayrollDeduct"), RadNumericTextBox)                   
                    txtFlexPayrollDeduct.Attributes.Add("OnBlur ", "validate('" + hfMaxAnnLmt.ClientID + "','" + lblFlenBenefit.ClientID + "',this);")
                    NesGrdcnt += 1
                Next
            End If

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