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

How to determine the raiser of OnRowSelecting ClientEvent

3 Answers 158 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Tomasz
Top achievements
Rank 1
Tomasz asked on 16 Feb 2011, 09:02 AM

Hi all,

I wrote java script function to handle: ClientEvents -> OnRowSelecting 

 function rowSelecting(sender, args) { .... }
           
My question is: can I ( and how ) determine whether this event has been rised
by clicking data row or by checking a header checkbox of GridClientSelectColumn ?
I was trying to retrieve it from sender but I failed. Does anyone know how to do it ?

Thx from advance

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 16 Feb 2011, 10:24 AM
Hello Tomasz,

Give a try with the following approach to identify whether the CheckBox in grid data item or CheckBox in header item in selected.

ASPX:
<telerik:RadGrid ID="RadGrid2" runat="server" AllowMultiRowSelection="True">
    <MasterTableView>
      <Columns>
            <telerik:GridClientSelectColumn UniqueName="GridClientSelectColumn">
            </telerik:GridClientSelectColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings Selecting-AllowRowSelect="true">
        <ClientEvents OnRowSelecting="rowSelecting" />
    </ClientSettings>
</telerik:RadGrid>
 
<asp:HiddenField ID="HiddenField1" runat="server" />

C#:
protected void RadGrid2_ItemCreated(object sender, GridItemEventArgs e)
   {
       if (e.Item is GridHeaderItem)
       {
           GridHeaderItem headerItem = (GridHeaderItem)e.Item;
           CheckBox chkbox = (CheckBox)headerItem["GridClientSelectColumn"].Controls[0];
           HiddenField1.Value = chkbox.ClientID;
       }
   }

Java Script:
<script type="text/javascript">
       function rowSelecting(sender, args) {
           var headerCheckbox = document.getElementById(document.getElementById('HiddenField1').value);
           if (headerCheckbox.checked)
               alert(" Selected header Checkbox ");
           else
               alert(" not Selected header Checkbox ");
         }
   </script>

Thanks,
Princy.
0
Tomasz
Top achievements
Rank 1
answered on 16 Feb 2011, 11:57 AM
Hello Princy!

Thanks a lot for  your feedback.

Unfortunately trying your solution I got following message:

 

Server Error in '/MyApp' Application.

Cannot find a cell bound to column name 'GridClientSelectColumn'

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: Telerik.Web.UI.GridException: Cannot find a cell bound to column name 'GridClientSelectColumn'

Source Error:

Line 342:            {
Line 343:                GridHeaderItem headerItem = (GridHeaderItem)e.Item;
Line 344: CheckBox chkbox = (CheckBox)headerItem["GridClientSelectColumn"].Controls[0];Line 345:                Hidden_HeaderCheckBoxID.Value = chkbox.ClientID;
Line 346:            }

Source File: C:\MyApp\MyForm.aspx.cs    Line: 344

Stack Trace:

0
Tomasz
Top achievements
Rank 1
answered on 16 Feb 2011, 12:53 PM
Hi Princy,

Sorry I was wrong !
I missed bit of your aspx code:

<telerik:GridClientSelectColumn    >>> UniqueName="GridClientSelectColumn"<<<   >
            </telerik:GridClientSelectColumn>
So mentioned error is obviously my mistake.


However at the JS code

we should use:
var headerCheckbox = document.getElementById(document.getElementById("<%HiddenField1.ClientID %>").value);
instead of:
var headerCheckbox = document.getElementById(document.getElementById('HiddenField1').value);

Finally my case is resolved, thank you for your help, and sorry again for my mistake

 


Tags
Grid
Asked by
Tomasz
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Tomasz
Top achievements
Rank 1
Share this question
or