Status_1Status_2Status_3Status_4Status_5Status_6 Status_1?? Status_2? Status_3 Status_4??? Status_5 Status_6??? i want to create a dynamic datagrid as above. All status are in table in my database.
Status value will be my column in datagrid and first column of the grid as above.
Checkbox will appear on each cell of grid where user can check/uncheck value
and save in database.
can anyone help me how to design my datagrid. Thanks in advance.
Pankaj RawatPosted Apr 5, 2013, 5:24 AM
ITemplatehas one Method InstantiateIn.
it is called when ever a new instance is created.
in Design Page, Add a place holder where we will add our datagrid.
here you want to add checkboxes in your DataGrid.
So Create a Class
Private Void CreateCheckboxRow : ITemplate
{
Public Void InstantiateIn(System.Web.UI.Control container)
{
CheckBox create_CheckBox=new CheckBox();
create_CheckBox.Checked=False;
create_CheckBox.Enable=True;
Container.Controls.Add(create_CheckBox);
}
}
and create datagrid and add controls in it.
DataGrid newdatagrid = new DataGrid();
newdatagrid.ID = "gv_New";
newdatagrid.AutoGenerateColumns = false;
BoundColumn categoryIDColumn = new BoundColumn();
categoryIDColumn.DataField = "CategoryID";
categoryIDColumn.HeaderText = "CategoryID";
BoundColumn CategoryName = new BoundColumn();
CategoryName.DataField = "CategoryName";
CategoryName.HeaderText = "CategoryName";
CheckBoxTemplate cb= new CheckBoxTemplate();
TemplateColumn checkboxColumn = new TemplateColumn();
checkboxColumn.HeaderText = "Like";
checkboxColumn.ItemTemplate= cb;
newdatagrid.Columns.Add(categoryIDColumn);
newdatagrid.Columns.Add(CategoryName);
newdatagrid.Columns.Add(checkboxColumn);
DataTable dtRecord = new DataTable();
SqlDataReader readerObject;
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
{
conn.Open();
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "Select * from CategoryTable";
readerObject = cmd.ExecuteReader();
dtRecord.Load(readerObject);
conn.Close();
}
if (dtRecord.Rows.Count > 0)
{
newdatagrid.DataSource = dtRecord.DefaultView;
newdatagrid.DataBind();
}
PlaceHolder1.Controls.Add(newdatagrid);