Hi,
I am using GridClientSelectColumn to let the user select a row in my grid.
AllowMultiRowSelection is set to false, because I don't want user to select multiple rows.
My question is after a row is selected, is there a way to de-select the row? I noticed use can uncheck a selected row if AllowMultiRowSelection is set to true, but it doesn't work if AllowMultiRowSelection is false. The user should be click on a checked checkbox again to uncheck it.
I am still check your forum to find a solution and it will be great if you can give me a quick solution.
thanks.
I am using GridClientSelectColumn to let the user select a row in my grid.
AllowMultiRowSelection is set to false, because I don't want user to select multiple rows.
My question is after a row is selected, is there a way to de-select the row? I noticed use can uncheck a selected row if AllowMultiRowSelection is set to true, but it doesn't work if AllowMultiRowSelection is false. The user should be click on a checked checkbox again to uncheck it.
I am still check your forum to find a solution and it will be great if you can give me a quick solution.
thanks.
4 Answers, 1 is accepted
0
Adam Cole
Top achievements
Rank 1
answered on 26 Aug 2008, 04:19 PM
Ctrl + "mouse click" doesn't unselect the row.
0
Hello Adam,
Here is an example how to achieve this:
Here is an example how to use CTRL + click to get this working:
function rowSelecting(sender, args)
{
if (args.get_domEvent().ctrlKey)
{
args.set_cancel(true);
}
}
where rowSelecting is the event handler for OnRowSelecting client-side event.
Greetings,
Vlad
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
Here is an example how to achieve this:
Here is an example how to use CTRL + click to get this working:
function rowSelecting(sender, args)
{
if (args.get_domEvent().ctrlKey)
{
args.set_cancel(true);
}
}
where rowSelecting is the event handler for OnRowSelecting client-side event.
Greetings,
Vlad
the Telerik team
Check out Telerik Trainer, the state of the art learning tool for Telerik products.
0
Princy
Top achievements
Rank 2
answered on 27 Aug 2008, 10:14 AM
Hi Adam,
You can also try the following code snippet.
ASPX:
JS:
Thanks
Princy.
You can also try the following code snippet.
ASPX:
<ClientSettings> |
<ClientEvents OnRowClick="OnRowClick" OnRowSelecting="RowSelecting" OnRowDeselecting="RowDeselecting" /> |
<Selecting AllowRowSelect="true" /> |
</ClientSettings> |
JS:
<script type="text/javascript" language="javascript" > |
var clickedItemIndex; |
var deselected; |
var selected; |
function OnRowClick(sender, args) |
{ |
var master = $find('<%= RadGrid1.ClientID %>').get_masterTableView(); |
var index = args.get_itemIndexHierarchical(); |
master.get_dataItems()[index].set_selected(!master.get_dataItems()[index].get_selected()); |
clickedItemIndex = index; |
if(master.get_dataItems()[index].get_selected()) |
selected = true; |
else |
selected = false; |
} |
function RowDeselecting(sender, args) //Attach to the OnRowDeselecting client event |
{ |
if(clickedItemIndex != args.get_itemIndexHierarchical()) |
args.set_cancel(true); |
else if(selected) |
deselected = false; |
else |
deselected = true; |
} |
function RowSelecting(sender, args) //Attach to the OnRowSelecting client event |
{ |
if(clickedItemIndex == args.get_itemIndexHierarchical() && deselected) |
args.set_cancel(true); |
else |
deselected = false; |
} |
</script> |
Thanks
Princy.
0
Adam Cole
Top achievements
Rank 1
answered on 27 Aug 2008, 02:43 PM
Thank you guys. After testing all your suggestions, I found my own solution. Let me share it.
Put this into the grid:
<ClientSettings>
<ClientEvents OnRowDeselecting="rowDeselecting1" OnRowSelecting="rowSelecting1" />
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
Add this in the <head>
var selectedIndex1;
var cancelSelect1;
function rowDeselecting1(sender, eventargs)
{
var index = eventargs.get_itemIndexHierarchical();
if (selectedIndex1 == index)
cancelSelect1 = 1;
else
cancelSelect1 = 0;
}
function rowSelecting1(sender, eventargs)
{
if (cancelSelect1 == 1)
{
cancelSelect1 = 0;
args.set_cancel(true);
}
var index = eventargs.get_itemIndexHierarchical();
selectedIndex1 = eventargs.get_itemIndexHierarchical();
}
Put this into the grid:
<ClientSettings>
<ClientEvents OnRowDeselecting="rowDeselecting1" OnRowSelecting="rowSelecting1" />
<Selecting AllowRowSelect="True"></Selecting>
</ClientSettings>
Add this in the <head>
var selectedIndex1;
var cancelSelect1;
function rowDeselecting1(sender, eventargs)
{
var index = eventargs.get_itemIndexHierarchical();
if (selectedIndex1 == index)
cancelSelect1 = 1;
else
cancelSelect1 = 0;
}
function rowSelecting1(sender, eventargs)
{
if (cancelSelect1 == 1)
{
cancelSelect1 = 0;
args.set_cancel(true);
}
var index = eventargs.get_itemIndexHierarchical();
selectedIndex1 = eventargs.get_itemIndexHierarchical();
}