This is a migrated thread and some comments may be shown as answers.

radgrid not showing grid template column after bind radgrid to data table

0 Answers 82 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Muhammad
Top achievements
Rank 1
Muhammad asked on 07 Jun 2012, 10:11 AM
   public void bindcontroltogrid(RadGrid gridtobind, RadTextBox rdtextgrid, RadComboBox rdcmbgrid,int count)
        {
            DataTable dt = new DataTable();
            List<TransactionSetupDL.TrTypeAttrDL> ob=new List<TransactionSetupDL.TrTypeAttrDL>();
         
                     int j = 0;
             ob = (List<TransactionSetupDL.TrTypeAttrDL>)HttpContext.Current.Session["lstobjTrTypeAttrdlofgrid"]; 
         
            lstvisiblelement = (List<TransactionSetupDL.TrTypeAttrDL>)HttpContext.Current.Session["lstvisiblelementofgrid"];
            //gridtobind.MasterTableView.DataSource = new string[] {"a"};
            //gridtobind.MasterTableView.TableLayout = GridTableLayout.Auto;
            //gridtobind.ClientSettings.Scrolling.AllowScroll = true;
            //gridtobind.ClientSettings.Scrolling.ScrollHeight = 100;
            //gridtobind.MasterTableView.ShowHeadersWhenNoRecords = true;
            //gridtobind.MasterTableView.CommandItemSettings.ShowAddNewRecordButton = true;
            //gridtobind.MasterTableView.CommandItemDisplay = GridCommandItemDisplay.Top;
            //gridtobind.MasterTableView.EditMode = GridEditMode.PopUp;
            //gridtobind.MasterTableView.InsertItemDisplay = GridInsertItemDisplay.Bottom;
            //gridtobind.MasterTableView.AllowAutomaticInserts = true;
            //gridtobind.MasterTableView.AllowAutomaticDeletes = true;
            //gridtobind.AutoGenerateDeleteColumn = true;
            //gridtobind.AutoGenerateEditColumn = true;
            //gridtobind.ShowHeader = true;
            //gridtobind.MasterTableView.ShowHeader = true;
            
            //gridtobind.MasterTableView.IsItemInserted = true;
        
            //gridtobind.MasterTableView.ClientDataKeyNames = new string[] { "EmployeeID" };
            //gridtobind.AllowPaging = true;
            //gridtobind.GridLines = GridLines.Both;
            //gridtobind.AllowSorting = true;


          //  gridtobind.ClientSettings.Selecting.AllowRowSelect = true;
          //gridtobind.ClientSettings.ClientEvents.OnRowSelected="rowSelected";


          DataRow dr = dt.NewRow() ;
            Control container = new Control();
            for (int i = 0; i < lstvisiblelement.Count; i++)
            {
              
                GridTemplateColumn tc = new GridTemplateColumn();
                GridDropDownColumn ddc = new GridDropDownColumn();
              


                ControlType = (BaseBLDL.Global.controlType)lstvisiblelement[i].ControlType;
                switch (ControlType)
                {
                    case BaseBLDL.Global.controlType.bpTxtControl:




                     //   tc.HeaderTemplate = new AddTemplateToGridView(ListItemType.Header, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, ob[i].Editable, rdcmbgrid, rdtextgrid);


                     //   tc.ItemTemplate = new AddTemplateToGridView(ListItemType.Item, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);


                        //tc.UniqueName = lstvisiblelement[i].NameStr;
                    //    tc.HeaderTemplate.InstantiateIn(container);
                       
                    //    tc.ItemTemplate.InstantiateIn(container);


                        //dt.Columns.Add(lstvisiblelement[i].Label);
                   


                         // dr[lstvisiblelement[i].Label] =tc;


                        //dt.Rows.Add(dr);


                        //gridtobind.MasterTableView.Columns.Add(tc);


                        //tc.UniqueName = lstvisiblelement[i].Label;
                       // gridtobind.MasterTableView.Columns.AddAt(j, tc);
                    //    gridtobind.MasterTableView.Columns[j].HeaderText = lstvisiblelement[i].NameStr;
                      //  gridtobind.MasterTableView.Columns[j].UniqueName = lstvisiblelement[i].NameStr;
                        
                            dt.Columns.Add(lstvisiblelement[i].Label).Namespace = Convert.ToString(lstvisiblelement[i].AttrDefId);
                        
                        //gridtobind.MasterTableView.Columns[j].HeaderStyle.Width = lstvisiblelement[i].ColWidth;
                        
                        break;
                    case BaseBLDL.Global.controlType.bpCmbControl:








                    //    tc.HeaderTemplate = new AddTemplateToGridView(ListItemType.Header, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);


                       // tc.ItemTemplate = new AddTemplateToGridView(ListItemType.Item, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);
                      


                        //Control containercmb = new Control();
                        //tc.UniqueName = lstvisiblelement[i].NameStr;
                      //  tc.HeaderTemplate.InstantiateIn(containercmb);
                     //   tc.ItemTemplate.InstantiateIn(containercmb);
                        
                


                        //dt.Columns.Add(lstvisiblelement[i].Label);


                        //dr[lstvisiblelement[i].Label] = tc;


                        //dt.Rows.Add(dr);






                        //tc.UniqueName = lstvisiblelement[i].Label;
                       // gridtobind.MasterTableView.Columns.AddAt(j , tc);
                       
                        //gridtobind.MasterTableView.Columns[j].HeaderText = lstvisiblelement[i].NameStr;
                        //gridtobind.MasterTableView.Columns[j].UniqueName = lstvisiblelement[i].NameStr;
                        //if (lstvisiblelement[i].Label != "Item")
                        //{
                        if (lstvisiblelement[i].Label!="Item")
                        {
                            dt.Columns.Add(lstvisiblelement[i].Label).Namespace = Convert.ToString(lstvisiblelement[i].AttrDefId);
                        }
                        else
                        {
                        tc.HeaderTemplate = new AddTemplateToGridView(ListItemType.Header, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);
                        
                        tc.ItemTemplate = new AddTemplateToGridView(ListItemType.Item, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);
                        Control containercmb = new Control();
                        tc.UniqueName = lstvisiblelement[i].Label;
                        tc.HeaderText = lstvisiblelement[i].Label;
                        tc.EditItemTemplate = new AddTemplateToGridView(ListItemType.EditItem, lstvisiblelement[i].NameStr, ControlType, lstvisiblelement[i].DefaultVal, lstvisiblelement[i].AttrDefId, lstvisiblelement[i].Editable, rdcmbgrid, rdtextgrid);
                        tc.EditItemTemplate.InstantiateIn(containercmb);




                        tc.ItemTemplate.InstantiateIn(containercmb);
                        gridtobind.MasterTableView.Columns.Add(tc);
                       
                     //   gridtobind.MasterTableView.Columns.AddAt(3, tc);
                        }
                        //}
                        //gridtobind.MasterTableView.Columns[j].ItemStyle.Width = lstvisiblelement[i].ColWidth;
                        
                        break;


                }
                j++;


            }
            //for (int i = 0; i <= count; i++)
            //{
            // 
            //    dr = dt.NewRow();
            //}
           
            HttpContext.Current.Session["datatable"] = dt;
            HttpContext.Current.Session["lsttrtypeattr"] = lstvisiblelement;
            gridtobind.MasterTableView.DataSource = dt;
         
        }


        public class AddTemplateToGridView : ITemplate
        {
            ListItemType _type;
            string _colName;
            string _DefaultVal;
            int _AttrDefId;
            bool _Editable;
            string _columnName;
            ListItemType _templateType;


            BaseBLDL.Global.controlType _controltype;
            RadComboBox _cmboxgrid;
            RadTextBox _rdtextbox;
            //ListItemType type, string colname,
            public AddTemplateToGridView(ListItemType type, string colname,BaseBLDL.Global.controlType controltype, string DefaultVal, int AttrDefId, bool Editable, RadComboBox cmboxgrid, RadTextBox rdtextbox)
            {
                //_type = type;


                //_colName = colname;
                _controltype = controltype;
                _DefaultVal = DefaultVal;
                _AttrDefId = AttrDefId;
                _Editable = Editable;
                _cmboxgrid = cmboxgrid;
                _rdtextbox = rdtextbox;
                _templateType = type;


              
                _columnName = colname;
            }
            void ITemplate.InstantiateIn(System.Web.UI.Control container)
            {
                switch (_templateType)
                {
                    case ListItemType.Header:
                        //Creates a new label control and add it to the container.
                        Label lbl = new Label();            //Allocates the new label object.
                        lbl.Text = _columnName;             //Assigns the name of the column in the lable.
                        container.Controls.Add(lbl);        //Adds the newly created label control to the container.
                        break;
                }


                switch (_templateType)
                {
                    case ListItemType.Item:


                        switch (_controltype)
                        {


                            case BaseBLDL.Global.controlType.bpTxtControl:


                                if (_AttrDefId == 13)
                                {
                                    Label lb = new Label();
                                    lb.Text = "1";
                                    lb.ID = _columnName;
                                   
                                    lb.ClientIDMode = ClientIDMode.Static;
                                    container.Controls.Add(lb);
                                }
                                else
                                {
                                    _rdtextbox = new RadTextBox();
                                    _rdtextbox.ID = _columnName;
                                    _rdtextbox.Text = _DefaultVal;
                                    _rdtextbox.Enabled = _Editable;
                                    _rdtextbox.ClientIDMode = ClientIDMode.Static;
                                    container.Controls.Add(_rdtextbox);
                                }
                                break;


                            case BaseBLDL.Global.controlType.bpCmbControl:
                                if (_AttrDefId == 17)
                                {
                                    _rdtextbox = new RadTextBox();
                                    _rdtextbox.ID = _columnName;
                                    _rdtextbox.ClientIDMode = ClientIDMode.Static;
                                    _rdtextbox.Text = _DefaultVal;
                                    _rdtextbox.ClientIDMode = ClientIDMode.Static;
                                    container.Controls.Add(_rdtextbox);
                                }
                                else
                                {
                                    _cmboxgrid = new RadComboBox();
                                    _cmboxgrid.ID = "Item";
                                    _cmboxgrid.Items.Add(new RadComboBoxItem("hello"));
                                    //_cmboxgrid.Items.Add(new RadComboBoxItem("Select Item"));
                                    _cmboxgrid.DataBinding += new EventHandler(_cmboxgrid_DataBinding);
                                    container.Controls.Add(_cmboxgrid);
                                }
                                break;
                        }
                        break;
                }
            }


            void _cmboxgrid_DataBinding(object sender, EventArgs e)
            {
                 RadComboBox lb = (RadComboBox)sender;
                 GridViewRow container = (GridViewRow)lb.NamingContainer;
                 if (container.DataItem is DataRowView)
                 {
                     DataRowView dvr = container.DataItem as DataRowView;
                     if (DataBinder.Eval(container.DataItem, "Item", "{0:N0}").ToString() != "")
                         lb.Text = DataBinder.Eval(container.DataItem, "Item", "{0:N0}").ToString();
                     else
                         lb.Text = "lb";
                 }
            }








            void txt_DataBinding(object sender, EventArgs e)
            {


                //    RadComboBox lnk = (RadComboBox)sender;
                //    GridViewRow container = (GridViewRow)lnk.NamingContainer;
                //    object dataValue = DataBinder.Eval(container.DataItem, _colName);
                //    if (dataValue != DBNull.Value)
                //    {
                //        lnk.Text = dataValue.ToString();
                //        lnk.EmptyMessage = "asddas";
                //        lnk.Text = "sdfsdf";
                //    }


            }




        }



protected void cmbTrNo_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            List<TransactionSetupDL.TrTypeAttrDL> lsttrtypeattrvisibletogrid = (List<TransactionSetupDL.TrTypeAttrDL>)Session["lsttrtypeattr"];
            DataTable dt = (DataTable)Session["datatable"];
            dt.Rows.Clear();
           string query= objbpTrGrid.createSelectQry(Convert.ToInt32(cmbTrNo.SelectedValue), false, false);
           DataTable dtgentr = objgentrdetbl.GetDataTable(query);
           //DataTable dt = (DataTable)Session["datatable"];
           //dt.Rows[0].Delete();
        // ArrayList  arrylstgentr= objgentrdetbl.Select(objbpTrGrid.createSelectQry(Convert.ToInt32(cmbTrNo.SelectedValue), false, false));
           if (Session["dt"] == null)
           {
            
               for (int i = 0; i < dtgentr.Rows.Count; i++)
               {
                   DataRow dr = dt.NewRow();
                   dt.Rows.InsertAt(dr, i);
                  
                   for (int j = 0; j < dt.Columns.Count; j++)
                   {
                  
                       //DataColumn col = dtgentr.Columns[dt.Columns[j].ColumnName];
                       for (int k = 0; k < lsttrtypeattrvisibletogrid.Count; k++)
                       {
                           
                       
                       if (Convert.ToString(lsttrtypeattrvisibletogrid[k].AttrDefId) == dt.Columns[j].Namespace)
                       { 
                       
                       DataColumn col = dtgentr.Columns[lsttrtypeattrvisibletogrid[k].NameStr];
                       if (col != null)
                       {
                         
                           dt.Rows[i][dt.Columns[j].ColumnName] = dtgentr.Rows[i][col].ToString();
                             
                      
    




                       }
}


                       }


                   }
               }
           }
            else
           {


                dt = (DataTable)Session["dt"];
               dt.Rows.Clear();
               for (int i = 0; i < dtgentr.Rows.Count; i++)
               {
                   DataRow dr = dt.NewRow();
                   dt.Rows.InsertAt(dr, i);
                   for (int j = 0; j < dt.Columns.Count; j++)
                   {
                       for (int k = 0; k < lsttrtypeattrvisibletogrid.Count; k++)
                       {
                           if (Convert.ToString(lsttrtypeattrvisibletogrid[k].AttrDefId) == dt.Columns[j].Namespace)
                           {


                               DataColumn col = dtgentr.Columns[lsttrtypeattrvisibletogrid[k].NameStr];
                               if (col != null)
                               {


                                   dt.Rows[i][j] = dtgentr.Rows[i][col].ToString();
                               }
                           }
                       }
                   }
               }
            
           }
       
           Session["datatable"] = dt;
            
            RadGrid1.Rebind();
            Session["dt"] = dt;
        }


        protected void RadGrid1_DataBinding(object sender, EventArgs e)
        {
            DataTable t = (DataTable)Session["datatable"];
        if (t != null)
        {
            for (int i = 0; i < t.Rows.Count; i++)
            {
                RadGrid1.EditIndexes.Add(i);
              
            }
          
          
        }
     
    
          
        }

No answers yet. Maybe you can help?

Tags
Grid
Asked by
Muhammad
Top achievements
Rank 1
Share this question
or