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

Select a row in RadGrid, after a linkbutton in the RadGrid is clicked

6 Answers 536 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Raji
Top achievements
Rank 1
Raji asked on 26 Jul 2011, 07:32 PM
Hi,

I have a RADGrid which has some boundcolumns and a templatecolumn. The template column has the Linkbutton.
Clicking on the Linkbutton will open a new window. Till here it is working fine. When the user clicks on one of the linkbutton, I want that row to be selected or make the font bold. I tried calling the client side script

window[

"<%= RadGrid1.ClientID %>"].MasterTableView.SelectRow(window["<%= RadGrid1.ClientID %>"].MasterTableView.Rows[rowIndex].Control, true);

 


This does not do anything. It is refresing the page. Any help will be appreciated.

Thanks,
Raji

6 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 27 Jul 2011, 06:32 AM
Hello Raji,

I tried the same scenario and it is working fine at my end. Make sure that you have set Selecting-AllowRowSelect property  true. Here is the sample code that I tried.

aspx:
<telerik:RadGrid ID="RadGrid1" runat="server"  DataSourceID="SqlDataSource1">
  <MasterTableView  CommandItemDisplay="Top">
      <Columns>
          <telerik:GridTemplateColumn UniqueName="TemplateColumn1">
             <ItemTemplate>
                  <asp:LinkButton  ID="link1" runat="server" Text="Edit"></asp:LinkButton >
             </ItemTemplate>
          </telerik:GridTemplateColumn>
      </Columns>
 </MasterTableView>
<ClientSettings Selecting-AllowRowSelect="true" >
</ClientSettings>
</telerik:RadGrid>

Thanks,
Princy.
0
Raji
Top achievements
Rank 1
answered on 27 Jul 2011, 05:00 PM
Hi Princy,

It is not working for me. I had set AllowRowSelect=true. I can send you my code.

Thanks,
Raji
0
Raji
Top achievements
Rank 1
answered on 29 Jul 2011, 12:27 AM
Can you send me working example that I can try?
0
Princy
Top achievements
Rank 2
answered on 29 Jul 2011, 05:02 AM
Hello Raji,

Here is the full code that I tried which worked as expected.

aspx:
<telerik:RadWindowManager ID="window"  runat="server">
</telerik:RadWindowManager>
<telerik:RadGrid ID="RadGrid1" runat="server"  DataSourceID="SqlDataSource1">
  <MasterTableView  CommandItemDisplay="Top">
      <Columns>
              . . . .
          <telerik:GridTemplateColumn UniqueName="TemplateColumn1">
             <ItemTemplate>
                  <asp:LinkButton  ID="link1" runat="server" Text="Edit"></asp:LinkButton >
             </ItemTemplate>
          </telerik:GridTemplateColumn>
      </Columns>
 </MasterTableView>
<ClientSettings Selecting-AllowRowSelect="true" >
</ClientSettings>
</telerik:RadGrid>

C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
   if (e.Item is GridDataItem)
   {
           GridDataItem item = (GridDataItem)e.Item;
           LinkButton btn = (LinkButton)item.FindControl("link1");
           int rowindex =item.ItemIndex;         
           btn.OnClientClick = string.Format("return testClick('{0}')", rowindex);
   }
}

Javascript:
function testClick(rowindex)
{
 var grid = $find("<%= RadGrid1.ClientID %>");
 var rowControl = grid.get_masterTableView().get_dataItems()[rowindex].get_element();
 grid.get_masterTableView().selectItem(rowControl, true);
 window.radopen(null,"Window1.aspx");
 return false;
}

Thanks,
Princy.
0
Raji
Top achievements
Rank 1
answered on 29 Jul 2011, 06:21 PM
Hi Princy,

I tried your code and it did not work for me. I am attaching my code. Can you please test my code? I am using Vs2005 and .Net 2.0.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomRadFilterRadGrid.aspx.cs" Inherits="CustomRadFilterRadGrid" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  
<head runat="server">
    <title>Untitled Page</title>
    <style type="text/css">
        .filterDiv
        {
            margin: 20px 0px 10px 0px;
        }
        .GridRowOver_ECMS td 
        
            background-color: red; 
            cursor:pointer; 
        
       /** .RadComboBoxDropDown_ECMS
       {
           background-color: Red !important;
       }**/
  
    </style>    
    
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadWindowManager ID="window"  runat="server">
    </telerik:RadWindowManager>
 <telerik:RadScriptManager ID="RadScriptManager1" runat="server" />
<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" />
  
<telerik:RadGrid runat="server" ID="RadGrid1" AutoGenerateColumns="false" DataSourceID="SqlDataSource1"
            AllowPaging="true" AllowSorting="true" AllowFilteringByColumn="true"             OnItemCreated="RadGrid1_ItemCreated" Skin="Default" EnableEmbeddedSkins="true">
            <MasterTableView IsFilterItemExpanded="False" CommandItemDisplay="Top" DataSourceID="SqlDataSource1">
                <Columns>
                    <telerik:GridTemplateColumn UniqueName="MyButtonColumn">
                        <ItemTemplate>
                            <asp:LinkButton  ID="btnTest" runat="server" Text="View"></asp:LinkButton>
                        </ItemTemplate>
                    </telerik:GridTemplateColumn
                    <telerik:GridNumericColumn DataField="OrderID" HeaderText="OrderID" DataType="System.Int32" DecimalDigits="2" FilterControlAltText="Filter OrderID column" UniqueName="OrderID" />
                    <telerik:GridDateTimeColumn DataField="OrderDate" HeaderText="OrderDate" DataFormatString="{0:MM/dd/yyyy}" FilterControlAltText="Filter OrderDate column" UniqueName="OrderDate"/>
                    <telerik:GridNumericColumn DataField="ShipVia" HeaderText="ShipVia" DataType="System.Int32" DecimalDigits="2" FilterControlAltText="Filter ShipVia column" UniqueName="ShipVia" />
                    <telerik:GridBoundColumn DataField="ShipName" HeaderText="ShipName" FilterControlAltText="Filter ShipName column" UniqueName="ShipName" />
                    <telerik:GridBoundColumn DataField="ShipAddress" HeaderText="ShipAddress" FilterControlAltText="Filter ShipAddress column" UniqueName="ShipAddress" />
                    <telerik:GridNumericColumn DataField="Freight" HeaderText="Freight" DataType="System.Decimal" DecimalDigits="2" FilterControlAltText="Filter Freight column" UniqueName="Freight" />
                </Columns>
            </MasterTableView>            
            <ClientSettings>
                <Selecting AllowRowSelect="true" />                
            </ClientSettings>
        </telerik:RadGrid>        
  
        <asp:SqlDataSource runat="server" ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
            SelectCommand="Select OrderID, OrderDate, ShipVia, ShipName, ShipAddress, Freight FROM Orders" />
  
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
            <script type="text/javascript">
function testClick(rowIndex)
             {
                var grid = window["<%= RadGrid1.ClientID %>"];  
                var rowControl = grid.get_masterTableView().get_dataItems()[rowindex].get_element();
                grid.get_masterTableView().selectItem(rowControl, true);
                window.radopen(null,"Default.aspx");
                return false;
  
            }     
</script>            
             
        </telerik:RadCodeBlock>
</form>
  
</body>
</html>
  
  
Code behind:
  
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            GridDataItem dataItem = (GridDataItem)e.Item;
              LinkButton button = (LinkButton)dataItem.FindControl("btnTest");
            button.OnClientClick = string.Format("return testClick('{0}')", dataItem.ItemIndex);
         }  
  
    }
0
Princy
Top achievements
Rank 2
answered on 01 Aug 2011, 05:48 AM
Hello Raji,

The version which I tested is 2011,1,315,35 in which your code worked as expected. I suggest you to upgrade to the latest version. Check the following help documentation which explains more about this.
Upgrading RadControls Trial to RadControls Developer license or newer version.

Thanks,
Princy.
Tags
Grid
Asked by
Raji
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Raji
Top achievements
Rank 1
Share this question
or