is there any way to get the values of selected rows to an ar

Hi

I have 120 rows in grid if i am selecting rows 3,4,5 is there any way to get the values of selected rows to an array. if i can get this in a array i will remove all image tags in it & reconstruct the array with only cell values

EG:- If i copy to clipboard i get it like this
<A onclick=javascript:NewWin()>
<IMG src=‘file:///P:/WORKS/NEHI/TestGrid/Images/dyn_down.gif’>
</A>
George Micheal,Album Name,123.456.7890,
<A href=‘mailto:george@george.com’>george@george.com</A>

I want to change it to like

George Micheal Album Name 123.456.7890 george@george.com

Thanks for your time
Cathy


There is no native method to get values as an array, but can be done as
var ids = grid.getSelectedRowId().split(",");
var values=[]
for (var i=0; i<ids.length; i++)
values.push( grid.cells(ids[i],INDEX).getValue());
// values.push( grid.cells(ids[i],INDEX).getValue().toString().replace(/<[^>]*>/g,""));

where INDEX - index of column, from which data need to be taken

Hi

This one not at all working when i try this in tree grid i am getting 2 errors

1) “mygrid.getSelectedRowId() is null or not an object"
2) still in clipboard its coming as
George Micheal,Album Name,123.456.7890,<A href=‘mailto:george@george.com’>george@george.com

i have row ids for all rows but in some rows there are no album name is that a issue.

here is my code please correct me if i am wrong

function onKeyPressed(code,ctrl,shift)
{   

    if(code==67&&ctrl)
    {
        var ids = mygrid.getSelectedRowId().split(”,");
        var values=[]
        for (var i=0; i<ids.length; i++)
        values.push( mygrid.cells(ids[i],0).getValue());
        mygrid.copyBlockToClipboard();
       
    }
       
    if(code==86&&ctrl)
    {
        mygrid.pasteBlockFromClipboard();
    }
       
    return true;
}

Please check attached sample

1221231945.zip (90 KB)

In case of mygrid.copyBlockToClipboard(); you can try next code

if(code==67&&ctrl)
{
mygrid.copyBlockToClipboard();
var text = mygrid.fromClipBoard();
text = text.replace(/<[^>]*>/g,"")
mygrid.toClipBoard(text);
}


nice its working

is there any way to get number of multiple columns selected instead of 1

You can run the same code snippet few times, with different INDEX values

Hi

Is there any way to do the following

1) get the number of rows selected
2) get the number of columns selected

so i can run a loop to get the values later i can concatenate everything 

  1. get the number of rows selected
    >>2) get the number of columns selected
    You can get details about block selection as
    grid._selectionArea.LeftTopRow
    grid._selectionArea.LeftTopCol
    grid._selectionArea.RightBottomRow
    grid._selectionArea.RightBottomCol


Hi thanks for your reply now its working fine with the following code am pasting it here so it may be useful to someone in future. i have one more doubt suppose if there are any blank columns or if i want to skip any row dynamically how should i do

here is my code

function onKeyPressed(code,ctrl,shift)
{   

    if(ctrl&&code==67)
    {       
   
        var RowStart = mygrid._selectionArea.LeftTopRow;
        var RowEnd = mygrid._selectionArea.RightBottomRow;
        var ColStart = mygrid._selectionArea.LeftTopCol;
        var ColEnd = mygrid._selectionArea.RightBottomCol;
        var values=[];
        for(var RowCnt=RowStart; RowCnt <=RowEnd; RowCnt++)
        {

            for(var ColCnt=ColStart; ColCnt <=ColEnd; ColCnt++)
            {
                values.push(mygrid.cells2(RowCnt,ColCnt).getValue().toString().replace(/<[^>]*>/g,""));                mygrid.toClipBoard(values.join(","))
            }   

        }
      }
       
    if(ctrl&&code==86)
    {
       
        mygrid.pasteBlockFromClipboard();
    }
       
    return true;
}