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

GridTemplateColumn Framework Issue

8 Answers 71 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Gary
Top achievements
Rank 1
Gary asked on 22 Dec 2013, 12:21 AM
Greetings,

The RadGrid's GridTemplateColumn seems to break between .NET35 and .NET4+.  Running the simple code below works fine for .NET3.5 and breaks for .NET4+, see the attached .PNGs.      

 Any idea why?

Thank you,
Gary.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Default" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<head runat="server">
    <title></title>
    <telerik:RadStyleSheetManager id="RadStyleSheetManager1" runat="server" />
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
        <Scripts>
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.Core.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQuery.js" />
            <asp:ScriptReference Assembly="Telerik.Web.UI" Name="Telerik.Web.UI.Common.jQueryInclude.js" />
        </Scripts>
    </telerik:RadScriptManager>
    <script type="text/javascript">
        //Put your JavaScript code here.
    </script>
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    </telerik:RadAjaxManager>
    <div>
        <telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" AllowPaging="True"
 
            AllowSorting="True" AutoGenerateColumns="False" AllowFilteringByColumn="True"
 
            OnNeedDataSource="RadGrid1_NeedDataSource" >
 
            <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
 
            <MasterTableView DataKeyNames="ID">
 
                <Columns>
 
                    <telerik:GridBoundColumn DataField="ID" HeaderText="ID" UniqueName="ID" SortExpression="ID">
 
                    </telerik:GridBoundColumn>
 
                    <telerik:GridBoundColumn DataField="Name" HeaderText="Name" UniqueName="Name" SortExpression="Name">
 
                    </telerik:GridBoundColumn>
 
                    <telerik:GridTemplateColumn>
 
                        <ItemTemplate>
 
                           <asp:HyperLink ID="EditLink" runat="server" Text="Edit"></asp:HyperLink>
 
                        </ItemTemplate>
 
                    </telerik:GridTemplateColumn>
 
                </Columns>
 
            </MasterTableView>
 
        </telerik:RadGrid>
    </div>
    </form>
</body>
</html>

using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
using System.Data;
using System.Configuration;
using System.Web.Security;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Telerik.Web.UI;
 
public partial class Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
 
    }
 
    protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
    {
        dynamic data = new[] {
 
                new { ID = 1, Name ="Name1"},
                new { ID = 2, Name = "Name2"},
                new { ID = 3, Name = "Name3"},
                new { ID = 4, Name = "Name4"},
                new { ID = 5, Name = "Name5"},
                new { ID = 6, Name ="Name6"},
                new { ID = 7, Name = "Name7"},
                new { ID = 8, Name = "Name8"},
                new { ID = 9, Name = "Name9"},
                new { ID = 10, Name = "Name10"},
                new { ID = 11, Name ="Name11"},
                new { ID = 12, Name = "Name12"},
                new { ID = 13, Name = "Name13"},
                new { ID = 14, Name = "Name14"},
                new { ID = 15, Name = "Name15"}
            };
 
        RadGrid1.DataSource = data;
    }
}

8 Answers, 1 is accepted

Sort by
0
Bilal
Top achievements
Rank 1
answered on 22 Dec 2013, 05:31 PM

Gary,



try this:



protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
 
    {
 
DataTable dt = new DataTable();
 
dt = GetSomeData();
 
RadGrid1.DataSource = dt.DefaultView;
        
    }




thanks,

0
Gary
Top achievements
Rank 1
answered on 22 Dec 2013, 09:49 PM

Tried as you suggested.  Unfortunately, still didn't work.


DataTable GetSomeData()
{
    DataTable dt = new DataTable();
    dt.Columns.Add("ID");
    dt.Columns.Add("Name");
    dt.Rows.Add("1", "Gary");
    dt.Rows.Add("2", "Michael");
    return dt;
}
 
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
 
    DataTable dt = new DataTable();
    dt = GetSomeData();
    RadGrid1.DataSource = dt.DefaultView;      
}


0
Eyup
Telerik team
answered on 25 Dec 2013, 09:18 AM
Hi Gary,

I have prepared a sample RadGrid web site to test the described behavior and it works as expected on my end. Can you please run the attached application and instruct me the exact steps I need to follow to reproduce the issue?

Regards,
Eyup
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
0
Gary
Top achievements
Rank 1
answered on 01 Jan 2014, 11:16 PM

Hi Eyup,


The issue occurs when you add a GridTemplateColumn and use a DataTable for the DataSource.  My original post said "Framework Issue" because when I switched frameworks to 3.5, the Grid did not fail.  I should mention this occurs in VS2013 with .NET4+.  This error does not occur in VS2012 under any framework. 



At this point I believe there is a bug in the RadGrid (2013.3.1015) when using GridTemplateColumn with .NET4+ in VS2013 using a code behind generated datasourse.  I notice others have posted similar problems without resolution.



I've switched to VS2012 until this is resolved.



Thanks,

Gary. 



<telerik:GridTemplateColumn>
                       <ItemTemplate>
                           <asp:HyperLink ID="EditLink" runat="server" Text="Edit"></asp:HyperLink>
                        </ItemTemplate>
</telerik:GridTemplateColumn>


0
Accepted
Bilal
Top achievements
Rank 1
answered on 02 Jan 2014, 06:37 AM
Gary give it another try and make sure to debug=false this time. 
0
Gary
Top achievements
Rank 1
answered on 02 Jan 2014, 08:56 AM
Ok, that worked.  Do you consider it a bug in RadGrid that requires the "debug=false" workaround? 

Thanks!
0
Bilal
Top achievements
Rank 1
answered on 02 Jan 2014, 04:54 PM
Well, bug is an offensive word for a smart control like radgrid. It looks like a compatibility issue. :)
0
Gary
Top achievements
Rank 1
answered on 03 Jan 2014, 12:03 AM
I agree.  Thanks for the help!
Tags
Grid
Asked by
Gary
Top achievements
Rank 1
Answers by
Bilal
Top achievements
Rank 1
Gary
Top achievements
Rank 1
Eyup
Telerik team
Share this question
or