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

[Solved] Telerik Detailtable

3 Answers 117 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Hanaa
Top achievements
Rank 1
Hanaa asked on 23 Feb 2014, 02:52 PM
hi , 
i have GridView Contain DetailTable 
DetailTable contain hyperlink Template column 
 i want to hide && show this hyperlink basedon Post.USerID

  protected void gvComments_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        if (!e.IsFromDetailTable)
        {
            var result = TopicsProvider.GetAllTopics();
            gvComments.MasterTableView.VirtualItemCount = result.Count();
            gvComments.MasterTableView.DataSource = result;
        }

    }protected void gvComments_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e)
    {
      if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Posts")
        {
            if ((((e.Item.DataItem as Post).USerID) == int.Parse(Session["UId"].ToString())))
            {

                (gvComments.MasterTableView.DetailTables[0].Columns[6] as GridTemplateColumn).Visible = true;
            }
            else
            {
                (gvComments.MasterTableView.DetailTables[0].Columns[6] as GridTemplateColumn).Visible = false;
            }
        }
}
 protected void gvComments_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
    {
        if (sender.Equals(gvComments))
        {
            gvComments.Dispose();
        }
        Label TopicID = (Label)e.DetailTableView.ParentItem.FindControl("lID");
        var result = PostProvider.GetPostsByTopicID(int.Parse(TopicID.Text));
        e.DetailTableView.DataSource = result;
        e.DetailTableView.DataBind();

}

please help ..
Regards ,
 Hanaa Sayed

3 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 24 Feb 2014, 04:01 AM
Hi Hanaa,

Please try the following code snippet to hide a column in the detailtable.

ASPX:
<telerik:GridTemplateColumn HeaderText="HyperLInkColumn">
  <ItemTemplate>
      <asp:HyperLink ID="HyperLink1" runat="server">HyperLink</asp:HyperLink>
  </ItemTemplate>
</telerik:GridTemplateColumn>

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
  if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Posts")
  {
    GridDataItem item = (GridDataItem)e.Item;
    HyperLink hyperlnk = (HyperLink)item.FindControl("HyperLink1");
    if (item["UserID"].Text == "some value")// Your condition goes here
    {
      hyperlnk.Visible = false;
    }
  }
}

Thanks,
Shinu
0
Hanaa
Top achievements
Rank 1
answered on 24 Feb 2014, 10:51 AM
 hi , thanks for replay 

RadGrid1_ItemDataBound event fire before gvComments_DetailTableDataBind but 
 if (e.Item is GridDataItem && e.Item.OwnerTableView.Name == "Posts")
        {

            } 
this condition  always False ..
Any Advice ..
regards .. 



 


0
Shinu
Top achievements
Rank 2
answered on 25 Feb 2014, 03:06 AM
Hi Hanaa,

Make sure that you have set the Name property of the GridTableView to "Posts". Please provide your code snippet if this doesn't help.

ASPX:
<telerik:GridTableView  Name="Posts">

Thanks,
Shinu
Tags
Grid
Asked by
Hanaa
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Hanaa
Top achievements
Rank 1
Share this question
or