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

Triggering RadWindow by clicking on Radgrid details record

4 Answers 129 Views
Grid
This is a migrated thread and some comments may be shown as answers.
William
Top achievements
Rank 1
William asked on 16 Feb 2009, 01:44 PM
Hi,

I was wondering if anyone could tell me how to do this. I need an image button in a details record of a radgrid to cause a radwindow to open when it's clicked. I think I need to assign the right attibrute to the control in the item created event, but I'm not sure how to do this?

Thanks

4 Answers, 1 is accepted

Sort by
0
Accepted
Princy
Top achievements
Rank 2
answered on 16 Feb 2009, 02:22 PM
Hello William,

You can try out the following code to open a RadWindow on clicking an ImageButton in a row in the detail table :
aspx:
 <telerik:RadGrid ID="RadGrid1" DataSourceID="SqlDataSource1" runat="server" > 
          <MasterTableView DataSourceID="SqlDataSource1"  Name="Master"
            <DetailTables> 
            <telerik:GridTableView DataSourceID="SqlDataSource2" DataKeyNames="ProductName" Name="Detail1" >            
           </DetailTables> 
            <Columns>            
            </telerik:GridBoundColumn> 
            <telerik:GridButtonColumn ButtonType="ImageButton" ImageUrl="~/Image.bmp" UniqueName="ButtonColumn" HeaderText="ButtonColumn" ></telerik:GridButtonColumn> 
            </Columns> 
           </telerik:GridTableView> 
        </DetailTables> 

cs:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e) 
    { 
        if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Detail1") //access the detail table using Name property
        { 
            GridDataItem dataItem = (GridDataItem)e.Item; 
            ImageButton imgbtn = (ImageButton)dataItem["ButtonColumn"].Controls[0]; 
            imgbtn.Attributes["onclick"] = String.Format("return ShowDetails('{0}','{1}');", e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ProductName"], e.Item.ItemIndex); 
        } 
    } 

js:
function ShowDetails(id, rowIndex) 
            { 
                var grid = $find("<%= RadGrid1.ClientID %>"); 
                 
                var rowControl = grid.get_masterTableView().get_dataItems()[rowIndex].get_element(); 
                grid.get_masterTableView().selectItem(rowControl, true); 
                         
                window.radopen("Details.aspx?ProductName=" + id, "Details"); 
                return false; 
             

Thanks
Princy.
0
William
Top achievements
Rank 1
answered on 17 Feb 2009, 02:59 PM
Excellent! That's what I was looking for. Thanks Princy
0
Princy
Top achievements
Rank 2
answered on 18 Feb 2009, 06:21 AM
Hi William,

You can also refer to the following demo which demonstrates on how to open a window and populate it with the grid row details, on clicking a button in the row:
Window Editing

-Princy
0
William
Top achievements
Rank 1
answered on 18 Feb 2009, 04:58 PM
Thanks Princy.
Tags
Grid
Asked by
William
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
William
Top achievements
Rank 1
Share this question
or