Hi all member
I have a grid in asp and add GridColumnGroup and column in code behind.
i add in page load event before i set value for colums but when page post back to server raise error
Invalid column name:
this my code
plase help to me
thanks
protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack == false) { txtDate.Text = clsMain.GetPersianDate(); CreateStructureTable(); fillZoneData(); fillAreaData(); fillPlacetype(); if (objZone.dtblZone.Rows.Count == 0 || objArea.dtblZone.Rows.Count==0) { string script = "Error('شما به منطقه ای مشخص دسترسی ندارید')"; // ScriptManager.RegisterStartupScript(this, GetType(), "MyKey", script, true); } else { FillPlaceInTable(); FillDataInTable(); } } } private void CreateStructureTable() { int i = 0; string s = ""; #region "GridClear" dgdZone.MasterTableView.Columns.Clear(); // dgdZone0.MasterTableView.Columns.Clear(); dgdZone.MasterTableView.ColumnGroups.Clear(); #endregion #region "GridColumnGroup" objContractItem.dtblContractItem = clsMain.SelectByCondition("Select * from vContractItem where iNumber In(Select iParentNumber from vContractItem) Order by ContractItemLevel asc"); for (i = 0; i <= objContractItem.dtblContractItem.Rows.Count - 1; i++) { if (!dgdZone.MasterTableView.ColumnGroups.Contains(objContractItem.dtblContractItem.Rows[i]["iNumber"])) { GridColumnGroup grp = new GridColumnGroup(); grp.HeaderText = objContractItem.dtblContractItem.Rows[i]["strName"].ToStr().Replace(" ", "").Replace(":", ""); grp.Name = "grp" + objContractItem.dtblContractItem.Rows[i]["iNumber"].ToStr().Replace(" ", "").Replace(":", ""); grp.HeaderStyle.VerticalAlign = VerticalAlign.Middle; grp.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; if (objContractItem.dtblContractItem.Rows[i]["iParentNumber"].ToInt() != 0) { grp.ParentGroupName = "grp" + objContractItem.dtblContractItem.Rows[i]["iParentNumber"].ToStr().Replace(" ", "").Replace(":", ""); } dgdZone.MasterTableView.ColumnGroups.Add(grp); } } #endregion //------------------------------ردیف Telerik.Web.UI.GridBoundColumn iRowNumber = new Telerik.Web.UI.GridBoundColumn(); dgdZone.MasterTableView.Columns.Add(iRowNumber); //dgdZone0.MasterTableView.Columns.Add(iRowNumber); iRowNumber.HeaderText = "ردیف"; iRowNumber.UniqueName = "iRowNumber"; iRowNumber.DataField = "iRowNumber"; iRowNumber.Visible = true; iRowNumber.HeaderStyle.Width = Unit.Pixel(40); iRowNumber.ItemStyle.Width = Unit.Pixel(20); iRowNumber.ForceExtractValue = GridForceExtractValues.Always; iRowNumber.AllowFiltering = false; iRowNumber.HeaderStyle.VerticalAlign = VerticalAlign.Middle; iRowNumber.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; iRowNumber.ItemStyle.VerticalAlign = VerticalAlign.Middle; iRowNumber.ItemStyle.HorizontalAlign = HorizontalAlign.Center; dt.Columns.Add("iRowNumber", i.GetType()); dt2.Columns.Add("iRowNumber", s.GetType()); //------------------------------------------ //------------------------شناسه محل Telerik.Web.UI.GridBoundColumn iZonePlaceNumberCol = new Telerik.Web.UI.GridBoundColumn(); dgdZone.MasterTableView.Columns.Add(iZonePlaceNumberCol); // dgdZone0.MasterTableView.Columns.Add(iZonePlaceNumberCol); iZonePlaceNumberCol.HeaderText = "iZonePlaceNumber"; iZonePlaceNumberCol.UniqueName = "iZonePlaceNumber"; iZonePlaceNumberCol.DataField = "iZonePlaceNumber"; iZonePlaceNumberCol.Visible = false; iZonePlaceNumberCol.ForceExtractValue = GridForceExtractValues.Always; dt.Columns.Add("iZonePlaceNumber", i.GetType()); dt.Columns.Add("strPlaceName", s.GetType()); //------------------------------ //--------------------------------نام محل Telerik.Web.UI.GridBoundColumn strPlaceNameCol = new Telerik.Web.UI.GridBoundColumn(); dgdZone.MasterTableView.Columns.Add(strPlaceNameCol); // dgdZone0.MasterTableView.Columns.Add(strPlaceNameCol); strPlaceNameCol.HeaderText = "نام محل"; strPlaceNameCol.UniqueName = "strPlaceName"; strPlaceNameCol.DataField = "strPlaceName"; strPlaceNameCol.Visible = true; strPlaceNameCol.HeaderStyle.Width = Unit.Pixel(180); strPlaceNameCol.ItemStyle.Width = Unit.Pixel(180); strPlaceNameCol.ForceExtractValue = GridForceExtractValues.Always; strPlaceNameCol.AllowFiltering = false; strPlaceNameCol.HeaderStyle.VerticalAlign = VerticalAlign.Middle; strPlaceNameCol.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; strPlaceNameCol.ItemStyle.VerticalAlign = VerticalAlign.Middle; strPlaceNameCol.ItemStyle.HorizontalAlign = HorizontalAlign.Right; strPlaceNameCol.AllowSorting = false; strPlaceNameCol.AllowFiltering = false; dt2.Columns.Add("iZonePlaceNumber", i.GetType()); dt2.Columns.Add("strPlaceName", s.GetType()); //------------------------------ objContractItem.dtblContractItem = clsMain.SelectByCondition("Select * from vContractItem where bShowDailyReport=1" + " Order by iParentNumber asc"); for (i = 0; i <= objContractItem.dtblContractItem.Rows.Count - 1; i++) { Telerik.Web.UI.GridBoundColumn col = new Telerik.Web.UI.GridBoundColumn(); if (objContractItem.dtblContractItem.Rows[i]["bIncomplete"].ToBool() == true) { // dgdZone0.MasterTableView.Columns.Add(col); dt2.Columns.Add(objContractItem.dtblContractItem.Rows[i]["iNumber"].ToString(), i.GetType()); } else { dgdZone.MasterTableView.Columns.Add(col); dt.Columns.Add(objContractItem.dtblContractItem.Rows[i]["iNumber"].ToString(), i.GetType()); } if (objContractItem.dtblContractItem.Rows[i]["iParentNumber"].ToStr().Length > 0) { //col.ColumnGroupName = "grp" + objContractItem.dtblContractItem.Rows[i]["iParentNumber"].ToStr(); } col.UniqueName =objContractItem.dtblContractItem.Rows[i]["iNumber"].ToString(); col.DataField = objContractItem.dtblContractItem.Rows[i]["iNumber"].ToString(); col.ForceExtractValue = GridForceExtractValues.Always; col.HeaderText = objContractItem.dtblContractItem.Rows[i]["strName"].ToString(); col.HeaderStyle.VerticalAlign = VerticalAlign.Middle; col.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; col.ItemStyle.VerticalAlign = VerticalAlign.Middle; col.ItemStyle.HorizontalAlign = HorizontalAlign.Center; col.HeaderStyle.Width = Unit.Pixel(100); col.AllowSorting = false; col.AllowFiltering = false; col.Groupable = false; } // } GlobalMActivity.dt = dt; GlobalMActivity.dt2 = dt2; dgdZone.DataSource = dt; //dgdZone0.DataSource = dt2; dgdZone.DataBind(); // dgdZone0.DataBind(); }