
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,
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
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:
JavaScript:
Thanks,
Princy.
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.
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:
C#:
JavaScript:
Thanks,
Princy.
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.
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.
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:
Thanks,
Princy.
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.
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.