We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. (Last updated on: June 24, 2019).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Need to access column properties in code behind grid rowbound event

Thread ID:

Created:

Updated:

Platform:

Replies:

142333 Jan 29,2019 04:37 AM UTC Jan 30,2019 10:37 AM UTC ASP.NET Web Forms 1
loading
Tags: Grid
Sharmila
Asked On January 29, 2019 04:37 AM UTC

I am dynamically binding the grid to the datasource property with a stored proc result set from DB using Business object in the code behind file.

.aspx.cs
FlatGrid.DataSource = sampleBO;
FlatGrid.DataBind();
.aspx
<ej:Grid ID="FlatGrid" runat="server" OnServerExcelExporting="FlatGrid_ServerExcelExporting" AllowPaging="True" AllowFiltering="True" AllowSorting="True"
    AllowGrouping="True" AllowResizing="True" AllowResizeToFit="True" AllowScrolling="true" AllowReordering="True" CssClass="" DataSourceCachingMode="None"
EnableLoadOnDemand="False" MinWidth="0" Width="1000px" SelectionType ="Multiple" >
              <ClientSideEvents DataBound="bound" />
              <ResizeSettings ResizeMode="NextColumn" ></ResizeSettings>
              <PageSettings EnableQueryString="true" PageSize="10" />
              <ToolbarSettings ShowToolbar="true" ToolbarItems="excelExport"></ToolbarSettings
</ej:Grid>

but FlatGrid.Columns.Count is showing as 0 after the databind
I want to dynamically find the Birthdate column in the code behind file. Using format property, I should be able to format the date column like dd/MM/yyyy.
something like FlatGrid.Columns["BirthDate"].Format = "{0:dd/MM/yyyy}"

In Asp.Net gridview control,we find the columns  in the Rowdatabound server side event of the Grid, like below:

protected void grid1_RowDataBound(object sender, GridViewRowEventArgs e)
        {  
            e.Row.Cells[0].Width = 1000;
        }

How do I find the columns and format in code behind if I am binding the grid dynamically and I do not want to hard code the columns in the .aspx file?


 
 
 



Vignesh Natarajan [Syncfusion]
Replied On January 30, 2019 10:37 AM UTC

Hi Sharmila, 
 
Thanks for contacting Syncfusion support. We are happy to assist you. 
 
Query: I want to dynamically find the Birthdate column in the code behind file. Using format property, I should be able to format the date column like dd/MM/yyyy. 
 
We have achieved your requirement as an workaround by finding the property Name and value of generic class using  System.Reflection name space. From that, we have checked the Date time value and applied format for that particular date column. Please refer the below code example and sample Link, 
 
 
<ej:Grid ID="FlatGrid" runat="server" …….."> 
        ……………….. 
   </ej:Grid> 
 
 
using System; 
using System.Reflection; 
…………… 
 
    public partial class GridFeatures : System.Web.UI.Page 
    { 
 
 
        public static List<cols> data = new List<cols>(); 
 
        public static List<Orders> order = new List<Orders>(); 
        protected void Page_Load(object sender, EventArgs e) 
        { 
            BindDataSource(); 
        } 
 
        private void BindDataSource() 
        { 
            …………………… 
           this.FlatGrid.DataSource = order; 
            this.FlatGrid.DataBind(); 
            PropertyFinder<Orders> PropertyFinderobj = new PropertyFinder<Orders>(); 
            PropertyFinderobj.ModelNameAndValue(order[0]); 
 
                for (int j = 0; j < data.Count(); j++) 
                { 
                    string[] formats = { "M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm", "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm" }; 
                    string value = data[j].columnValue; 
                    DateTime datetime; 
                    if (DateTime.TryParseExact(value, formats, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault, out datetime)) 
                    { 
                        this.FlatGrid.Columns.Add(new Column() { Field = data[j].columnName, Format = "{0:dd/MM/yyyy}" }); // apply the format for date column alone 
                    } 
                    else 
                        this.FlatGrid.Columns.Add(new Column() { Field = data[j].columnName }); 
                } 
        } 
 
        public class PropertyFinder<Model> where Model : class 
        { 
            public void ModelNameAndValue(Model modelObj) 
            { 
                //Getting Type of Orders Class Model 
                Type ModelType = modelObj.GetType(); 
 
                //We will be defining a PropertyInfo Object which contains details about the class property  
                PropertyInfo[] arrayPropertyInfos = ModelType.GetProperties(); 
 
                //Now we will loop in all properties one by one to get value 
                foreach (PropertyInfo property in arrayPropertyInfos) 
                { 
                    data.Add(new cols(property.Name, property.GetValue(modelObj).ToString()));   
                } 
            } 
        } 
 
        [Serializable] 
        public class Orders 
        { 
.                  …………….. 
        } 
 
        [Serializable] 
 
        public class cols 
        { 
            public cols() 
            { 
            } 
 
            public cols(string columnName, string columnValue) 
            { 
                this.columnName = columnName; 
                this.columnValue = columnValue; 
            } 
            public string columnName { get; set; } 
 
            public string columnValue { get; set; } 
 
        } 
    } 
} 
 
 
For your convenience we have prepared a sample which can be downloaded from below link 
 
 
Please get back to us if you have further queries. 
 
Regards, 
Vignesh Natarajan. 
 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

Please sign in to access our forum

This page will automatically be redirected to the sign-in page in 10 seconds.

Warning Icon You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.Close Icon

Live Chat Icon For mobile
Live Chat Icon