Search code examples
c#databoundrowdatabounditemdatabounddatabound-controls

Gridview dataBound add hyperlink to column data from code behind


Using grid view binding it from code behind:

I want to bind a particular column data into a hyper link so when it clicked it should do a download.

How to do that ?

Below is my code :

for (int i = 0; i <= tbl.Columns.Count - 1; i++) 
{
    Telerik.Web.UI.GridBoundColumn boundfield = new Telerik.Web.UI.GridBoundColumn();

    if (tbl.Columns[i].ColumnName.ToString() == "Row") 
    {

        LinkButton lkbtn = new LinkButton();
        lkbtn.CommandName = i;
        lkbtn.CommandArgument = "dwnld";
        lkbtn.Font.Underline = true;
        lkbtn.Text = tbl.Columns(i).ColumnName.ToString();

        boundfield.DataField = tbl.Columns(i).ColumnName.ToString()
        boundfield.HeaderText = tbl.Columns(i).ColumnName.ToString();

        GridView2.MasterTableView.Columns.Add(boundfield);

    }
}

Solution

  • Why not use grid template column with link button.

    <telerik:GridTemplateColumn>
           <ItemTemplate>
              <asp:LinkButton ID="btnDownload" OnClick="btnDownload_Click" runat="server">Download Something</asp:LinkButton>
            </ItemTemplate>
       </telerik:GridTemplateColumn>
    
    
    protected void btnDownload_Click(object sender, EventArgs e)
    {
      LinkButton lbBtn = sender as LinkButton;
      GridDataItem item = (GridDataItem)(sender as LinkButton).NamingContainer;
      // Use item to get other details
    ...
    ...
    }