Hi all,
I have problem with own DataGrid.
In my own CCGrid I inherits base DataGrid and adding them Template Column.
All works OK, bat when I creating DataGrid programmatically, from code in aspx page, the template column is not added to.
Code:
Aspx page:
Code:
CCGrid grid1 = new CCGrid();
grid1.DataSource = GetDataView();
grid1.DataBind();
PlaceHolder1.Controls.Add(grid1);
Cs:
Code:
namespace Test
{
public class CCGridColumnTemplate : ITemplate
{
public void InstantiateIn(Control container)
{
Button btnSelect = new Button();
btnSelect.Height = 15;
btnSelect.Width = 15;
btnSelect.CommandName = "Select";
btnSelect.Text = " ";
container.Controls.Add(btnSelect);
}
}
/// <summary>
/// Summary description for CCGrid.
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:CCGrid runat=server></{0}:CCGrid>")]
public class CCGrid : DataGrid
{
/// <summary>
/// Konstruktor DataGridu: nastavim zakladni vlastnosti
/// vzhledu a potrebnych sloupcu
/// </summary>
public CCGrid()
{
//Page.Trace.Write("CCGrid","CCGrid - Start");
AlternatingItemStyle.BackColor = Color.WhiteSmoke;
GridLines = GridLines.Both;
BorderColor = Color.Gray;
ShowHeader = true;
AutoGenerateColumns = true;
SelectedItemStyle.BackColor = Color.Yellow;
BorderWidth = Unit.Pixel(2);
SelectedItemStyle.BackColor = Color.Aqua;
Init +=new EventHandler(OnInit);
//Page.Trace.Write("CCGrid - End");
}
public void OnInit (Object sender, EventArgs e)
{
// Page.Trace.Write("CCGrid","OnInit - Start");
AddSelectColumn();
// Page.Trace.Write("OnInit - End");
}
public void AddSelectColumn()
{
// Page.Trace.Write("AddSelectColumn - Start");
//Add frst Column
TemplateColumn selectColumn = new TemplateColumn();
selectColumn.ItemTemplate = new CCGridColumnTemplate();
Columns.AddAt(0, selectColumn);
}
}
}
thanks
Martin