sushma lochab
Top achievements
Rank 1
sushma lochab
asked on 02 Feb 2010, 04:00 PM
Hi,
Is there any way to validate cell values of inserted/updated row of Radgrid on client side?
Is there any event like onBeforeAdd/OnBeforeUpdate where we can get inserted/edited row and validate entered column values?
Thanks in advance.
Sushma
8 Answers, 1 is accepted
0
Shinu
Top achievements
Rank 2
answered on 03 Feb 2010, 09:17 AM
Hello Sushma,
Try out the following code to achieve client side validation:
c#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) |
{ |
if ((e.Item is GridEditableItem) && (e.Item.IsInEditMode)) |
{ |
GridEditableItem editForm = (GridEditableItem)e.Item; |
LinkButton update = (LinkButton)editForm.FindControl("UpdateButton"); |
LinkButton insert = (LinkButton)editForm.FindControl("PerformInsertButton"); |
TextBox txtbx = (TextBox)editForm["BoundColumnUniqueName"].Controls[0]; |
if (update != null) |
{ |
update.Attributes.Add("onclick", "return Validate('" + txtbx.ClientID + "')"); |
} |
if (insert != null) |
{ |
insert.Attributes.Add("onclick", "return Validate('" + txtbx.ClientID + "')"); |
} |
} |
} |
js:
function Validate(txt) |
{ |
var txtbx = document.getElementById(txt); |
if(txtbx.value == "") |
{ |
alert("Please enter a value!"); |
return false; |
} |
} |
Thanks
Shinu.
John
commented on 15 Mar 2023, 05:50 PM
Top achievements
Rank 1
Heh, this is still relevant today and working nicely, thanks Shinu
0
Nahid
Top achievements
Rank 1
answered on 13 Oct 2010, 10:10 AM
Hi Shinu,
Its working fine when using Link button but Its not working when I use image button.
Thanks
Md Nasir Uddin
Its working fine when using Link button but Its not working when I use image button.
Thanks
Md Nasir Uddin
0
Hello Nahid,
Please cast the buttons to ImageButton when using image buttons:
I hope this helps.
Kind regards,
Mira
the Telerik team
Please cast the buttons to ImageButton when using image buttons:
protected
void
RadGrid1_ItemDataBound(
object
sender, GridItemEventArgs e)
{
if
((e.Item
is
GridEditableItem) && (e.Item.IsInEditMode))
{
GridEditableItem editForm = (GridEditableItem)e.Item;
ImageButton update = (ImageButton)editForm.FindControl(
"UpdateButton"
);
ImageButton insert = (ImageButton)editForm.FindControl(
"PerformInsertButton"
);
TextBox txtbx = (TextBox)editForm[
"BoundColumnUniqueName"
].Controls[0];
if
(update !=
null
)
{
update.Attributes.Add(
"onclick"
,
"return Validate('"
+ txtbx.ClientID +
"')"
);
}
if
(insert !=
null
)
{
insert.Attributes.Add(
"onclick"
,
"return Validate('"
+ txtbx.ClientID +
"')"
);
}
}
}
I hope this helps.
Kind regards,
Mira
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Nahid
Top achievements
Rank 1
answered on 28 Oct 2010, 08:55 AM
Hello Mira,
Thanks for you reply. When I am using multiple field validation then Its works fine in first time but in second time its found null object. whats my problem? How can I validate multiple field in a javascript function.
Javascript function is bellow:
Thanks
Nahid
Thanks for you reply. When I am using multiple field validation then Its works fine in first time but in second time its found null object. whats my problem? How can I validate multiple field in a javascript function.
Javascript function is bellow:
function
ValidateWebAddress(txt, combo) {
var
comboValue = $find(combo);
// Its a combobox
var
txtbx2 = document.getElementById(txt);
//Its a textbox
var
alertStr;
if
((comboValue.get_value() ==
""
) && (txtbx2.value ==
""
)) {
alertStr =
"Please Select Web Address Type And Enter Address!"
;
radalert(alertStr);
return
false
;
}
else
if
(comboValue.get_value() ==
""
) {
alertStr =
"Please Select Web Address Type!"
;
radalert(alertStr);
return
false
;
}
else
if
(txtbx2.value ==
""
) {
alertStr =
"Please Enter Address!"
;
radalert(alertStr);
return
false
;
}
}
Thanks
Nahid
0
Hello Nahid,
I tried to replicate the issue which you described, but to no avail.
Attached to this message, you will find the code which I used for testing.
Please, take a look at it and let me know if there are any differences at your end, which I may be leaving out.
Greetings,
Mira
the Telerik team
I tried to replicate the issue which you described, but to no avail.
Attached to this message, you will find the code which I used for testing.
Please, take a look at it and let me know if there are any differences at your end, which I may be leaving out.
Greetings,
Mira
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Public Issue Tracking
system and vote to affect the priority of the items
0
Sagar
Top achievements
Rank 1
answered on 29 Jun 2013, 05:52 AM
@Shinu !!!Thank you For Suggestion!!!! Its working now!!!
0
Gaurab
Top achievements
Rank 1
answered on 24 Mar 2014, 04:31 PM
Hello Mira,
I implemented the solution you and Shinu recommended and it was working great. However, it has stopped working. For some reason the onclick I add is concatenated to the radgrid's onclick and rendered as shown below (if my function was called "Validate").
Since my code is added after the update code, my validation code never gets called.
As a work around, I did find that that the ClientEvents OnCommand fires before the button's onclick event.
So, on the server side, instead of adding the onclick attribute, I put the client id of the control(s) to be validated in a hidden input at the same place:
Then I added the following inside the root node of the RadGrid:
Then in the RadGrid1_OnCommand:
I implemented the solution you and Shinu recommended and it was working great. However, it has stopped working. For some reason the onclick I add is concatenated to the radgrid's onclick and rendered as shown below (if my function was called "Validate").
onclick="
if
(!$find(
'ctl00_ContentPlaceHolder1_rgPours_ctl00'
).updateItem(
'0'
))
return
false
;
return
Validate(
'txtboxClientID'
);"
Since my code is added after the update code, my validation code never gets called.
As a work around, I did find that that the ClientEvents OnCommand fires before the button's onclick event.
So, on the server side, instead of adding the onclick attribute, I put the client id of the control(s) to be validated in a hidden input at the same place:
hdControlId.Value = txtbx.ClientID;
Then I added the following inside the root node of the RadGrid:
<ClientSettings>
<ClientEvents OnCommand=
"RadGrid1_OnCommand"
/>
</ClientSettings>
Then in the RadGrid1_OnCommand:
function
rgPours_OnCommand(sender, eventArgs)
{
var
commandName = eventArgs.get_commandName();
var
controlId = $(
"#<%=hdControlId.ClientID %>"
).val();
if
(commandName ==
"Update"
|| commandName ==
"PerformInsert"
)
eventArgs.set_cancel(!Validate(controlId));
}
0
Gaurab
Top achievements
Rank 1
answered on 25 Mar 2014, 03:14 PM
Update: I found out why my validation code quit working. If you "subscribe" to the RadGrid ClientEvents like below:
it will add an onclick javascript function to every button like below (this example is for the update button):
If you've tried to add an onclick attribute like originally posted by Shinu, it will put your javascript after this and therefore it will not run. In my case I had developed my custom validation, then later subscribed to the OnCommand events. That's why my validation quit working.
It's unfortunate and was certainly confusing to me, but at least now I know what happened.
<
ClientSettings
>
<
ClientEvents
OnCommand
=
"RadGrid1_OnCommand"
/>
</
ClientSettings
>
it will add an onclick javascript function to every button like below (this example is for the update button):
onclick=
"if(!$find('ctl00_ContentPlaceHolder1_rgPours_ctl00').updateItem('0')) return false;"
If you've tried to add an onclick attribute like originally posted by Shinu, it will put your javascript after this and therefore it will not run. In my case I had developed my custom validation, then later subscribed to the OnCommand events. That's why my validation quit working.
It's unfortunate and was certainly confusing to me, but at least now I know what happened.