Hi there,
Iam trying to create a datagrid dynamically in asp .net (C#). It
contains a leftmost column with the check box and few data columns and
the last column is a hyperlink column. Please find the code attached
below.
The sorting, paging also doesnt work.
private void BuildDataGrid()
{
System.Web.UI.WebControls.DataGrid objDG2 = new
System.Web.UI.WebControls.DataGrid();
DataTable objDtTable = new DataTable();
int itemIndex =0;
objDAL.getStoredProcedureIntoDT("usp_GET_ALL_Users ",ref objDtTable);
objDG2.Columns.Clear();
objDG2.Width = Unit.Percentage(100);
objDG2.Height= 400;
objDG2.GridLines = GridLines.Both;
objDG2.CellPadding =1;
objDG2.ForeColor=System.Drawing.Color.Black;
objDG2.BackColor = System.Drawing.Color.Beige;
objDG2.AlternatingItemStyle.BackColor =
System.Drawing.Color.Gainsboro;
objDG2.HeaderStyle.BackColor = System.Drawing.Color.Brown;
objDG2.PageSize =5;
//
//
// objDG2.AutoGenerateColumns=false;
objDG2.AllowPaging =true;
objDG2.AllowSorting = true;
string columnName = objDtTable.Columns[itemIndex].ColumnName;
TemplateColumn objTC = new TemplateColumn();
objTC.HeaderTemplate = new
DataGridTemplate(ListItemType.Header,columnName);
objTC.ItemTemplate = new
DataGridTemplate(ListItemType.Item,columnName);
objDG2.Columns.Add(objTC);
objDG2.DataSource = objDtTable;
objDG2.DataBind();
plcDgCtl.Controls.Add(objDG2);
}
public class DataGridTemplate : System.Web.UI.Page,ITemplate
{
ListItemType templateType;
string columnName;
public DataGridTemplate(ListItemType type, string colname)
{
templateType = type;
columnName = colname;
}
public void InstantiateIn(System.Web.UI.Control container)
{
Literal lc = new Literal();
switch(templateType)
{
case ListItemType.Header:
lc.Text = "<B>" + columnName + "</B>";
container.Controls.Add(lc);
break;
case ListItemType.Item:
//lc.Text = "Item " + columnName;
CheckBox objChk = new CheckBox();
//objChk.ID = strId;
container.Controls.Add(objChk);
break;
case ListItemType.EditItem:
TextBox tb = new TextBox();
tb.Text = "";
container.Controls.Add(tb);
break;
case ListItemType.Footer:
lc.Text = "<I>" + columnName + "</I>";
container.Controls.Add(lc);
break;
}
}
}