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

how to get the radgrid mastertableview column name on client side

10 Answers 746 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Jas
Top achievements
Rank 1
Jas asked on 08 Dec 2008, 01:23 AM
I create columns of my grid dynamically on the server side. These are not created on the client side.

I need to check the name of the first column to this radgrid.
How is this possible ?

I actually tried

var gridID = $find("<%=RadgridDataAval.ClientID %>");
var x = gridID.get_masterTableView().getColumnByUniqueName("Error");
if (x)
  alert ("exists");
else
  alert("doesnt exist");

Error is the name of one of the columns of the grid. However, says it doesn't exist

Also, I don't know if we have examples that show how to fetch colulmn name of a particular column in the mastertableview on the client side.

SOS

thanks,
Jas



10 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 1
answered on 08 Dec 2008, 05:04 AM
Hi Jas,

I tried this on my end and it is working fine. Have you set the correct column UniqueName? I would suggest you send your aspx code.
Here is the code I tried.

ASPX:
<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" GridLines="None"
            <MasterTableView> 
            </MasterTableView> 
        </telerik:RadGrid> 

CS:
protected void Page_Load(object sender, EventArgs e) 
    { 
 
        if (!IsPostBack) 
        { 
            RadGrid1.DataSourceID ="SqlDataSource1"
             
            RadGrid1.Width = Unit.Percentage(98); 
            RadGrid1.PageSize = 5; 
            RadGrid1.AllowPaging = true
            RadGrid1.AutoGenerateColumns = false
            RadGrid1.Skin = "Web20"
            RadGrid1.MasterTableView.PageSize = 15; 
            RadGrid1.MasterTableView.Width = Unit.Percentage(100); 
 
           //Add GridBoundColumn 
            GridBoundColumn boundColumn; 
            boundColumn = new GridBoundColumn(); 
            RadGrid1.MasterTableView.Columns.Add(boundColumn); 
            boundColumn.DataField = "ProductName"
            boundColumn.HeaderText = "ProductName"
            boundColumn.UniqueName = "ProductName"
        } 
    } 


JS:
<script type="text/javascript"
  function ShowColumnName() 
  { 
  alert('Hi'); 
  var gridID = $find("<%=RadGrid1.ClientID %>"); 
  var x = gridID.get_masterTableView().getColumnByUniqueName("ProductName"); 
  if (x) 
    alert ("exists"); 
  else 
  alert("doesnt exist"); 
 
  
  } 
 
</script> 


Thanks
Shinu.
0
Jas
Top achievements
Rank 1
answered on 08 Dec 2008, 05:13 AM
Hi Shinu,

Actually I create a data table on the server side .

DataTable ddt = new DataTable();
                ddt.Columns.Add("ERRORCODE", typeof(string));

and then set the data source of my radgrid equals to this data table.

Then does it really set the unique name for the radgrid columns if i create my radgrid like this ?
Just wondering . I really don't do it the way you created columns

Thanks,
Jas
0
Jas
Top achievements
Rank 1
answered on 08 Dec 2008, 05:26 AM
Also,

how do i get the name of all the columns of the radgrid on client side ? is there any way to do that ?

Thanks
Jas
0
Princy
Top achievements
Rank 1
answered on 08 Dec 2008, 10:54 AM
Hi Jas,

I guess you have set AutoGenerateColumns to true. If so the name of the column will be the Column UniqueName.

You can access all the columns in a Grid on the client side as shown below.


ASPX:
 <input id="Button1" type="button" onclick="GetColumnNames();" value="button" /> 


JS:
<script type="text/javascript"
        
        function GetColumnNames() 
        { 
         var grid = $find("<%=RadGrid1.ClientID %>");  
         var columnCount = grid.get_masterTableView().get_columns().length; 
         for(var i=0;i<columnCount;i++) 
         { 
         var UniqueName=grid.get_masterTableView().get_columns()[i].get_uniqueName(); 
         alert(UniqueName) 
         } 
        } 
        </script> 

Regards
Princy
0
Achuthan
Top achievements
Rank 1
answered on 15 Oct 2012, 08:37 AM
Hi,

how do i get the name of all the columns of the radgrid in C#?


   protected void RadGrid1_DataBound(object sender, EventArgs e)
        {
            // Here i am trying to access the column names of Radgrid  for  implement the Multiple column header.
         
            var count= RadGrid1.Columns.Count;
         
           //but  the count value is always zero.
   
        }
0
Shinu
Top achievements
Rank 1
answered on 15 Oct 2012, 08:48 AM
Hi,

You can loop through the columns as shown below.
C#:
protected void Button1_Click(object sender, EventArgs e)
{
  foreach (GridColumn col in RadGrid1.Columns)
  {
    string value = col.UniqueName.ToString();
  }
}

Thanks,
Shinu.
0
Sheshagiri
Top achievements
Rank 1
answered on 15 Sep 2014, 09:48 AM
Hi, 
I have two table like Task and Task History,  with different column names for key reference(taskID(primary key in Task) and taskhID(foreign key in Task History) i want to bind this two table to  rad grid.
 
 Problem is,


while binding if i use taskhID, then

protected void radgv_OnDetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
    {

        GridDataItem dataitem = (GridDataItem)e.DetailTableView.ParentItem;

        if (e.DetailTableView.Name == "TaskHistory")
        {

            string id = dataitem.GetDataKeyValue("taskhID").ToString(); //error: Object reference not set to an instance of an object
            e.DetailTableView.DataSource = GetDataTable("SELECT * FROM TaskHistory where taskhID=  '" + id + "'");


        }
Becouse column "taskID" is not exit in Table TaskHistory.
Please tell me the solution.




0
Eyup
Telerik team
answered on 18 Sep 2014, 08:38 AM
Hello Sheshagiri,

Can you please verify that the taskhID field is included in the DataKeyNames of the corresponding table view?
http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/programmatic-hierarchy/defaultcs.aspx?#qsf-demo-source

Looking forward to your reply.

Regards,
Eyup
Telerik
 

Check out the Telerik Platform - the only platform that combines a rich set of UI tools with powerful cloud services to develop web, hybrid and native mobile apps.

 
0
n/a
Top achievements
Rank 1
answered on 27 Sep 2019, 06:00 AM

Can you solved problem.

I have the same question. 

this.RadGrid1.Columns.Count  = 0

0
Eyup
Telerik team
answered on 01 Oct 2019, 10:49 AM

Hello,

Try using the RenderColumns collection of the MasterTableView instance to traverse the grid columns:
https://docs.telerik.com/devtools/aspnet-ajax/controls/grid/how-to/Common/using-the--getitems-getcolumn-and-getcolumnsafe-methods#columns

I hope this will prove helpful. Feel free to give it a try and let me know if it works for you.

Regards,
Eyup
Progress Telerik

Get quickly onboarded and successful with your Telerik and/or Kendo UI products with the Virtual Classroom free technical training, available to all active customers. Learn More.
Tags
Grid
Asked by
Jas
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 1
Jas
Top achievements
Rank 1
Princy
Top achievements
Rank 1
Achuthan
Top achievements
Rank 1
Sheshagiri
Top achievements
Rank 1
Eyup
Telerik team
n/a
Top achievements
Rank 1
Share this question
or