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

how to get clicked image button row index

3 Answers 568 Views
Grid
This is a migrated thread and some comments may be shown as answers.
faisal
Top achievements
Rank 1
faisal asked on 15 Jun 2011, 12:53 PM
Hi,

i am working on grid. 

<telerik:GridTemplateColumn UniqueName="display" HeaderText="Select">
<ItemTemplate>
<asp:ImageButton CommandName="select" runat="server"  ImageUrl="Images/geofence.png" OnClientClick= '<%# String.Format("javascript:EditItem();return false;",DataBinder.Eval(Container.DataItem,"LastName"))%>' />
</ItemTemplate>
</telerik:GridTemplateColumn>


 function EditItem() {
//want to get here clicked image button row index
}

i want to get clicked image button row index in Edititem().

plz help me

Regards,

Faisal

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 15 Jun 2011, 02:35 PM
Hello Faisal,

Try the following code snippet to get the row index of the clicked image button.

C#:
protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
{
         if (e.Item is GridDataItem)
       {
           GridDataItem item = (GridDataItem)e.Item;
           ImageButton imgBtn = (ImageButton)item["temp"].FindControl("ImageButton1");
           TableCell cell = item["Name"];          
           int index = e.Item.ItemIndex;                
           imgBtn.Attributes.Add("onclick", "EditItem('"+e.Item.ItemIndex+"');");       
       }
}

Javascript:
function EditItem(index)
{
        var grid = $find("<%=RadGrid1.ClientID %>");
        var masterTable = grid.get_masterTableView();
        var rows = masterTable.get_dataItems();
        var indexnew = rows[index];
        var cell = masterTable.getCellByColumnUniqueName(indexnew, "LastName");  
        alert(cell.innerHTML);
        alert(index);
}

Thanks,
Princy.
0
Genti
Telerik team
answered on 15 Jun 2011, 03:49 PM
Hi faisal,

I do not know your intention.
However, consider the following cliend side computations that might be helpful to you.
function findItemIndex(button, args) {
                var row = Telerik.Web.UI.Grid.GetFirstParentByTagName(button, "tr");
                //guarantee to get to the table row
                while ( !(row.id && row.id.indexOf("__") > -1) ) {
                    row = Telerik.Web.UI.Grid.GetFirstParentByTagName(button, "tr");
                }
 
                //get index
                var index = row.id.split("__")[1];
                alert(index);
 
                //get all table data items
                var tableId = row.id.split("__")[0];
                var tableView = $find(tableId);
                tableView.get_dataItems();
                //find the data item related to the row id
                var dataItem = $find(row.id);
            }

And in the item template you would have:
<ItemTemplate>
    <asp:ImageButton ID="ImageButton1" CommandName="select" runat="server"
    ImageUrl="Images/geofence.png" OnClientClick= "findItemIndex(this, event);return false;" />
</ItemTemplate>


Greetings,
Genti
the Telerik team

Browse the vast support resources we have to jump start your development with RadControls for ASP.NET AJAX. See how to integrate our AJAX controls seamlessly in SharePoint 2007/2010 visiting our common SharePoint portal.

0
faisal
Top achievements
Rank 1
answered on 20 Jun 2011, 07:09 AM
thanks. it works like a charm
Tags
Grid
Asked by
faisal
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Genti
Telerik team
faisal
Top achievements
Rank 1
Share this question
or