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

MultiRowSelection - change behaviour

1 Answer 103 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Martin Gleiß
Top achievements
Rank 1
Martin Gleiß asked on 14 Mar 2012, 11:32 AM
Hi,
out of the Box RadGrid with enabled MutlirowSelection behaves similar to Excel. (f.e. mutltiple row selection by holding shift to get all rows from one selected to new selected row or holding pressed ctrl to select various rows).
Logically my grid looses all other selected rows when clicked  on a new row without holding ctr pressed.
Our wants the grid to behave the following way:
  • Select row by simple click on ANY place in the row not hollding ctrl without deselecting previously selected rows
  • Deselect selected row the same way and behaviour 

Is there a way to make selection behave like having permanently ctrl pressed?


Greetz,
Steffen

1 Answer, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 14 Mar 2012, 12:39 PM
Hello,

Try the following code.
aspx:
<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="SqlDataSource1" >
 <ClientSettings EnableRowHoverStyle="true">
  <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" />
  <ClientEvents OnRowClick="RadGrid1_OnRowClick" OnRowDeselecting="RadGrid1_OnRowDeselecting" OnRowSelecting="RadGrid1_OnRowSelecting" OnRowSelected=" RadGrid1_OnRowSelected"  />
 </ClientSettings>
</telerik:RadGrid>

Javascript:
<script type="text/javascript">
 
    var originalClickedRowState = null;
    var clickedRow = null;
 
    function RadGrid1_OnRowClick(sender, args)
    {
        clickedRow = args.get_gridDataItem();
        originalClickedRowState = args.get_gridDataItem().get_selected();
    }
 
    function RadGrid1_OnRowDeselecting(sender, args)
    {
        if (clickedRow != null && clickedRow != args.get_gridDataItem())
        {
            args.set_cancel(true);
        }
    }
 
    function RadGrid1_OnRowSelecting(sender, args)
    {
        if (clickedRow == args.get_gridDataItem() && originalClickedRowState)
        {
            args.set_cancel(true);
            originalClickedRowState = null;
            clickedRow = null;
        }
    }
 
    function RadGrid1_OnRowSelected(sender, args)
    {
        originalClickedRowState = null;
        clickedRow = null;
    }
 
</script>

-Shinu.
Tags
Grid
Asked by
Martin Gleiß
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Share this question
or