Click here to Skip to main content
15,896,063 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
public static GridView CreateGridView(GridView objGridView, DataSet objDataSet)
{
objGridView.Columns.Clear();
//GridView objGridView = new GridView();
objGridView.AutoGenerateColumns = false;
objGridView.AllowSorting = true;


DataTable objDataTable = objDataSet.Tables[0];
if (objDataTable != null)
{

TemplateField objTemplateFieldEdit = new TemplateField();
objTemplateFieldEdit.ItemTemplate = new GridViewTemplate(ListItemType.AlternatingItem, "Edit", objDataTable);
TemplateField objTemplateFieldDelete = new TemplateField();
objTemplateFieldDelete.ItemTemplate = new GridViewTemplate(ListItemType.AlternatingItem, "Delete", objDataTable);
objGridView.Columns.Add(objTemplateFieldEdit);
objGridView.Columns.Add(objTemplateFieldDelete);
objGridView.RowDataBound += objGridView_RowDataBound;
for (int i = 0; i < objDataTable.Columns.Count; i++)
{
TemplateField objTemplateField = new TemplateField();

objTemplateField.HeaderTemplate = new GridViewTemplate(ListItemType.Header, objDataTable.Columns[i].ColumnName.ToString(), objDataTable);
objTemplateField.ItemTemplate = new GridViewTemplate(ListItemType.Item, objDataTable.Columns[i].ColumnName.ToString(), objDataTable);
objTemplateField.EditItemTemplate = new GridViewTemplate(ListItemType.EditItem , objDataTable.Columns[i].ColumnName.ToString(), objDataTable);
objGridView.Columns.Add(objTemplateField);
}

objGridView.Sorting += objGridView_Sorting;
objGridView.DataSource = null;
objGridView.DataSource = objDataTable;
string arr = (objDataTable.Columns[0].ColumnName);
objGridView.DataKeyNames = new string[] { arr};
objGridView.DataBind();
}
return objGridView;
public class GridViewTemplate : ITemplate
{
ListItemType _templateType;
string _columnName;
DataTable _objDataTable;
public GridViewTemplate(ListItemType type, string colname, DataTable objDataTable)
{
_templateType = type;
_columnName = colname;
_objDataTable = objDataTable;
}
void ITemplate.InstantiateIn(System.Web.UI.Control container)
{
switch (_templateType)
{
case ListItemType.Header:
LinkButton objLinkButton = new LinkButton();
objLinkButton.Text = _columnName;
objLinkButton.ForeColor = System.Drawing.Color.Wheat;
objLinkButton.CommandName = "Sort";
objLinkButton.CommandArgument = _columnName;
DropDownCheckBoxes objDropDownCheckBoxes = new DropDownCheckBoxes();
objDropDownCheckBoxes.ID = _columnName;
objDropDownCheckBoxes.DataSource = _objDataTable;
objDropDownCheckBoxes.DataTextField = _columnName;
objDropDownCheckBoxes.DataValueField = _columnName;
objDropDownCheckBoxes.UseSelectAllNode = false;
objDropDownCheckBoxes.AutoPostBack = true;
objDropDownCheckBoxes.SelectedIndexChanged += objDropDownCheckBoxes_SelectedIndexChanged;
objDropDownCheckBoxes.DataBind();
container.Controls.Add(objLinkButton);
container.Controls.Add(objDropDownCheckBoxes);
break;
case ListItemType.Item:
Label objLabel = new Label();
objLabel.DataBinding += objLabel_DataBinding;
container.Controls.Add(objLabel);
break;
case ListItemType.EditItem:
TextBox tb2 = new TextBox();
tb2.DataBinding += new EventHandler(tb1_DataBinding);
tb2.Columns = 4;
container.Controls.Add(tb2);
break;
case ListItemType.Footer:
CheckBox chkColumn = new CheckBox();
chkColumn.ID = "Chk" + _columnName;
container.Controls.Add(chkColumn);
break;

case ListItemType.AlternatingItem:
Button objButton = new Button();
objButton.Text = _columnName;
objButton.CommandName = "cmd"+_columnName;
container.Controls.Add(objButton);
break;
}
}

public static DataTable filterDataTable{get;set;}

void objDropDownCheckBoxes_SelectedIndexChanged(object sender, EventArgs e)
{

DataSet objDataSet1 = new DataSet();
DataTable objDataTable1 = new DataTable();
foreach (ListItem item in (sender as ListControl).Items)
{
if (item.Selected)
{
DynamicBal objDynamicBal = new DynamicBal();
DataSet objDataSet = new DataSet();
objDataSet = objDynamicBal.Bind();
DataTable objDataTable = objDataSet.Tables[0];
if (objDataTable != null)
{
DataView objDataView = new DataView(objDataTable);
objDataView.RowFilter = _columnName + "=" + item.Text;
objDataTable1 = objDataView.ToTable();
}

}
}
filterDataTable = objDataTable1; //tz method im calling in pageload for data bind based on dropdown selected items
}

void objLabel_DataBinding(object sender, EventArgs e)
{
Label objLabel = (Label)sender;
GridViewRow container = (GridViewRow)objLabel.NamingContainer;
object dataValue = DataBinder.Eval(container.DataItem, _columnName);
if (dataValue != DBNull.Value)
{
objLabel.Text = dataValue.ToString();
}
}
void tb1_DataBinding(object sender, EventArgs e)
{
TextBox txtdata = (TextBox)sender;
GridViewRow container = (GridViewRow)txtdata.NamingContainer;
object dataValue = DataBinder.Eval(container.DataItem, _columnName);
if (dataValue != DBNull.Value)
{
txtdata.Text = dataValue.ToString();
}
}
}
}

in my aspx page im calling like tz

C#
protected void Page_Load(object sender, EventArgs e)
   {
//tz is for dropdown filtereing data to bind grid
       if (GridViewTemplate.filterDataTable != null && GridViewTemplate.filterDataTable.Rows.Count > 0)
       {
           objDataSet = new DataSet();
           objDataSet.Tables.Add(GridViewTemplate.filterDataTable);
           GenerateDynamicGrid.CreateGridView(DynamicGridView, objDataSet);
       }
       else
       {//tz is normal in pageload
           objDataSet = new DataSet();
           objDataSet = objDynamicBal.Bind();
           GenerateDynamicGrid.CreateGridView(DynamicGridView, objDataSet);
       }
   }



but im not able to get the grid what im filtering..
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900