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

Event On Row Select

4 Answers 441 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Matt Tapia
Top achievements
Rank 1
Matt Tapia asked on 21 Jun 2010, 05:55 PM
Is there a way to fire a server-side event based on a row select of a rad-grid? Basically, I want to take a column value (that is the key value for the dataset) and use that to re-direct the page to a different page to view more information based on that key value. Right now, I can select a row, and then have a button that does the same thing  based on the selected row, but I want to eliminate a click. Also, is there any way to make it only fire on a double-click event?

4 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 22 Jun 2010, 04:49 AM
Hello,

The ItemCommand event of grid fires when you select the row. You can access the row values as shown below.

C#:
 
    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) 
    { 
        if (e.CommandName == "Select"
        { 
            GridDataItem item = (GridDataItem)e.Item; 
            Label1.Text = item["CompanyName"].Text; 
 
        } 
    } 

The KB Article shows how to perform postback when double-clicking the row.
Performing postback from grid client events

-Shinu.
0
Matt Tapia
Top achievements
Rank 1
answered on 22 Jun 2010, 01:34 PM
I tried the onItemCommand, but nothing happened...anything I need to change with my datagrid properties?

<telerik:RadAjaxPanel runat="server">  
    <telerik:RadGrid runat="server" ID="rgAssignedClaims" Skin="WebBlue" 
        AllowPaging="true" AllowSorting="true" PageSize="10"   
        AllowFilteringByColumn="true"   
        onitemcommand="rgAssignedClaims_ItemCommand" > 
        <ClientSettings> 
            <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" /> 
        </ClientSettings> 
          
        <MasterTableView DataKeyNames="ClaimReviewID" TableLayout="Fixed" AutoGenerateColumns="false" > 
            <Columns> 
                <telerik:GridBoundColumn DataField="ClaimReviewID" HeaderText="Claim Review ID" AllowFiltering="false" /> 
                <telerik:GridBoundColumn DataField="OrderID" HeaderText="Order ID" AllowFiltering="false" /> 
                <telerik:GridBoundColumn DataField="PatientID" HeaderText="Patient ID" AllowFiltering="false" /> 
                <telerik:GridBoundColumn DataField="LastName" HeaderText="Patient Name" AllowFiltering="false" /> 
                <telerik:GridBoundColumn DataField="ClaimReviewStatusDescription" HeaderText="Status" AutoPostBackOnFilter="false" />             
                <telerik:GridBoundColumn DataField="CreateDate" HeaderText="DOS Date" AllowFiltering="false" />                    
            </Columns> 
        </MasterTableView> 
        <PagerStyle Mode="NextPrevAndNumeric" /> 
    </telerik:RadGrid> 
</telerik:RadAjaxPanel> 
<asp:Label ID="lblTest" runat="server" Text="xx"></asp:Label> 

C#
protected void rgAssignedClaims_ItemCommand(object source, GridCommandEventArgs e)  
        {  
            if (e.CommandName == "Select")  
            {  
                GridDataItem item = (GridDataItem)e.Item;  
                lblTest.Text = item["ClaimReviewID"].Text;  
 
            }  
        }  
0
Shinu
Top achievements
Rank 2
answered on 22 Jun 2010, 02:31 PM
Hello Matt,

I guess following approach is suitable for you.

aspx:
 
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"
    <AjaxSettings> 
        <telerik:AjaxSetting AjaxControlID="rgAssignedClaims"
            <UpdatedControls> 
                <telerik:AjaxUpdatedControl ControlID="rgAssignedClaims" /> 
                <telerik:AjaxUpdatedControl ControlID="lblTest" /> 
            </UpdatedControls> 
        </telerik:AjaxSetting> 
    </AjaxSettings> 
</telerik:RadAjaxManager> 
 
    <telerik:RadGrid runat="server" ID="rgAssignedClaims" Skin="WebBlue"  
        AllowPaging="true" AllowSorting="true" PageSize="10"    
        AllowFilteringByColumn="true"    
        onitemcommand="rgAssignedClaims_ItemCommand" >  
        <ClientSettings EnablePostBackOnRowClick="true"
            <Selecting AllowRowSelect="true" EnableDragToSelectRows="false" />  
        </ClientSettings>            
        <MasterTableView DataKeyNames="ClaimReviewID" TableLayout="Fixed" AutoGenerateColumns="false" >  
            <Columns>  
             . . . 
            </Columns>  
        </MasterTableView>  
    </telerik:RadGrid>  
 
<asp:Label ID="lblTest" runat="server" Text="xx"></asp:Label>  

cs:
 
        protected void rgAssignedClaims_ItemCommand(object source, GridCommandEventArgs e)   
        {   
            if (e.CommandName == "Select")   
            {   
                GridDataItem item = (GridDataItem)e.Item;   
                lblTest.Text = item["ClaimReviewID"].Text;  
            }   
        }   

[I thought you were using GridButtonColumn with CommandName "Select". Thank you for giving complete code]

Regards,
Shinu.
0
Matt Tapia
Top achievements
Rank 1
answered on 02 Jul 2010, 04:19 PM
thanks. it took me a bit on the double-click since it was a control within a page, but this solution worked.
Tags
Grid
Asked by
Matt Tapia
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Matt Tapia
Top achievements
Rank 1
Share this question
or