Hi,
I have problem with dynamically generated columns in RadGrid. Each postback adds me same count of empty columns. Here is my test code.
thx for help
DK
Code-behind
I have problem with dynamically generated columns in RadGrid. Each postback adds me same count of empty columns. Here is my test code.
thx for help
DK
<%@ Page Title="" Language="C#" AutoEventWireup="true" CodeBehind="Test.aspx.cs" Inherits="Test.TestGrid" %>
<
head
runat
=
"server"
/>
<
form
id
=
"frm"
runat
=
"server"
>
<
asp:ScriptManager
ID
=
"ScriptManager1"
runat
=
"server"
>
</
asp:ScriptManager
>
<
asp:HiddenField
ID
=
"hfMinYear"
runat
=
"server"
/><
asp:HiddenField
ID
=
"hfMaxYear"
runat
=
"server"
/>
<
telerik:RadGrid
ID
=
"grdForecast"
AllowFilteringByColumn
=
"false"
AllowMultiRowSelection
=
"true"
AllowSorting
=
"true"
AutoGenerateColumns
=
"false"
EnableViewState
=
"true"
OnNeedDataSource
=
"grdForecast_NeedDataSource"
runat
=
"server"
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
>
<
Selecting
AllowRowSelect
=
"True"
/>
</
ClientSettings
>
<
MasterTableView
DataKeyNames
=
"ForecastId"
EnableColumnViewState
=
"false"
><
HeaderStyle
Wrap
=
"false"
/><
ItemStyle
Wrap
=
"false"
/>
<
Columns
>
<
telerik:GridClientSelectColumn
UniqueName
=
"ClientSelectColumn"
/>
<
telerik:GridBoundColumn
DataField
=
"ValueTotal"
DataFormatString
=
"{0:0.##}"
HeaderText
=
"Total Value"
HeaderStyle-Wrap
=
"false"
ItemStyle-HorizontalAlign
=
"Right"
ItemStyle-Wrap
=
"false"
ReadOnly
=
"True"
UniqueName
=
"ValueTotal"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
<
asp:button
id
=
"ddd"
text
=
"Postback"
runat
=
"server"
/>
</
form
>
Code-behind
using
System;
using
System.Data;
using
Telerik.Web.UI;
namespace
Test
{
public
partial
class
TestGrid : System.Web.UI.Page
{
protected
int
ProjectId;
protected
void
Page_Init(
object
sender, EventArgs e)
{
// if (IsPostBack)
{
int
MinYear = 2010, MaxYear = 2020;
CreateColumns(MinYear, MaxYear);
}
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
CreateColumns(
int
MinYear,
int
MaxYear)
{
for
(
int
i = MinYear; i <= MaxYear; i++)
{
grdForecast.MasterTableView.Columns.Add(
new
GridBoundColumn()
{
DataField =
"Value"
+ i,
DataFormatString =
"{0:0.##}"
,
HeaderText =
"Value "
+ i,
ReadOnly =
true
,
UniqueName =
"Value"
+ i
});
}
}
protected
void
grdForecast_NeedDataSource(
object
source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
grdForecast.DataSource =
new
DataTable();
}
}
}