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

[Solved] Radcombobox SelectedIndexChanged problem filter by radgrid

6 Answers 300 Views
Grid
This is a migrated thread and some comments may be shown as answers.
shanker bangari
Top achievements
Rank 1
shanker bangari asked on 26 Feb 2010, 06:23 PM
Hi

this is shanker am doing project my requirement is rad grid filtered by rad combo box .when ever am click edit button and add new  the rad grid is cleared how to solve that  .

This is my code

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Facility.DataSource = studentremarks.org_view_facility_lookup();
                Facility.DataBind();
                
            }
        }
        public void getdata()
        {
            grdstudentremarks.DataSource = studentremarks.sch_view_sch_student_remark_list(RadcomFiscalyear.SelectedValue.GetInteger(), Radcomclass.SelectedValue.GetInteger());
            grdstudentremarks.DataBind();
        }
        protected void Facility_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            RadcomFiscalyear.DataSource = Feeschedulemanager.sch_view_fiscal_year_lookup(Facility.SelectedValue.GetInteger());
            RadcomFiscalyear.DataBind();
            Radcomclass.DataSource = studentremarks.sch_view_class_lookup(Facility.SelectedValue.GetInteger());
            Radcomclass.DataBind();
        }

        protected void Radcomclass_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            getdata();
        }

        protected void grdstudentremarks_DeleteCommand(object source, GridCommandEventArgs e)
        {
            GridEditableItem editedItem = e.Item as GridEditableItem;
            int? eventId = GetEventId(editedItem);
            if (eventId.HasValue)
            {

                try
                {
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_del(eventId.Value, out status_text);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year deleted");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't delete Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be deleted. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, "Such Fisacl_year does not exist");
            }
        }

        protected void grdstudentremarks_InsertCommand(object source, GridCommandEventArgs e)
        {
            int? faciltyid = LogonDetails.Instance.sys_lclvar_default_facility_id;

            GridEditableItem editedItem = e.Item as GridEditableItem;
            Dictionary<string, object> values = ParseEditValues(editedItem);
            string msg;
            if (ValidateFields(values, out msg))
            {
                try
                {
                    LogonDetails det = LogonDetails.Instance;
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_ins(Convert.ToInt32(values["StudentName"])as int?,Convert.ToInt32(values["ReportedResource"])as int?,
                    values["RemarkDate"] as DateTime?,values["description"]as string ,(bool)values["BadRemark"], out status_text, (bool)values["Goodremark"]);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year inserted");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't insert Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be inserted. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, msg);
            }
        }

        protected void grdstudentremarks_UpdateCommand(object source, GridCommandEventArgs e)
        {
            int? faciltyid = LogonDetails.Instance.sys_lclvar_default_facility_id;
            GridEditableItem editedItem = e.Item as GridEditableItem;
            Dictionary<string, object> values = ParseEditValues(editedItem);
            int? eventId = GetEventId(editedItem);
            if (eventId.HasValue)
            {
                try
                {
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_upd(eventId.Value, Convert.ToInt32(values["StudentName"]) as int?, Convert.ToInt32(values["ReportedResource"]) as int?,
                    values["RemarkDate"] as DateTime?, values["description"] as string, (bool)values["BadRemark"], out status_text, (bool)values["Goodremark"]);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year updated");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't update Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be updated. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, "Such Fisacl_year does not exist");
            }
        }

        protected void grdstudentremarks_PreRender(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //GridColumn editColumn = grdstudentremarks.MasterTableView.GetColumn("EditCommandColumn");
                //if (editColumn != null) { editColumn.Visible = CanUpdate; }
                GridColumn deleteColumn = grdstudentremarks.MasterTableView.GetColumn("DeleteCommandColumn");
                if (deleteColumn != null) { deleteColumn.Visible = CanDelete; }
                if (!CanInsert)
                {
                    HideInsertCol(grdstudentremarks);
                }
                getdata();
            }
        }

        protected override int GetScreenId()
        {
            return Screens.studentremarks;
        }
        private bool ValidateFields(Dictionary<string, object> values, out string msg)
        {
            msg = String.Empty;
            bool res = false;
            if (values != null)
            {
                res = true;
                if ((!values.ContainsKey("fiscal_year")) || (values["fiscal_year"] == null) || (string.IsNullOrEmpty(values["fiscal_year"].ToString())))
                {
                    msg = "Select Fiscalyear";
                    res = false;
                }
            }
            return res;
        }
        private int? GetEventId(GridItem item)
        {
            int? id = null;
            if (item != null)
            {
                if (item.ItemIndex >= 0)
                {
                    id = item.OwnerTableView.DataKeyValues[item.ItemIndex]["person_id"].ToString().GetInteger();
                }
            }
            return id;
        }
        private Dictionary<string, object> ParseEditValues(GridEditableItem editedItem)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();

            if (editedItem != null)
            {
                editedItem.OwnerTableView.ExtractValuesFromItem(dic, editedItem);
                RadComboBox StudentName = editedItem.FindControl("StudentName") as RadComboBox;
                if (StudentName != null)
                {
                    dic.Add("StudentName", StudentName.SelectedValue.GetInteger());
                }
                RadComboBox ReportedResource = editedItem.FindControl("ReportedResource") as RadComboBox;
                if (ReportedResource != null)
                {
                    dic.Add("ReportedResource", ReportedResource.SelectedValue.GetInteger());
                }
                RadDatePicker RemarkDate = editedItem.FindControl("RemarkDate") as RadDatePicker;
                if (RemarkDate != null)
                {
                    dic.Add("RemarkDate", RemarkDate.SelectedDate);
                }
                TextBox txtDescription = editedItem.FindControl("txtDescription") as TextBox;
                if (txtDescription != null)
                {
                    dic.Add("description", txtDescription.Text);
                }

                CheckBox Goodremark = editedItem.FindControl("Goodremark") as CheckBox;
                dic.Add("Goodremark", Goodremark.Checked);
                CheckBox BadRemark = editedItem.FindControl("BadRemark") as CheckBox;
                dic.Add("BadRemark", BadRemark.Checked);
            }
            return dic;
        }

        protected void grdstudentremarks_ItemDataBound(object sender, GridItemEventArgs e)
        {
            int? faciltyid = Facility.SelectedValue.GetInteger();

            if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
            {
                int? eventId = GetEventId(e.Item);
                RadComboBox StudentName = e.Item.FindControl("StudentName") as RadComboBox;
                if (StudentName != null)
                {
                    StudentName.DataSource = studentremarks.sch_view_class_student_lookup(faciltyid,Radcomclass.SelectedValue.GetInteger(),RadcomFiscalyear.SelectedValue.GetInteger());
                    StudentName.DataBind();
                }
                RadComboBox ReportedResource = e.Item.FindControl("ReportedResource") as RadComboBox;
                if (ReportedResource != null)
                {
                    ReportedResource.DataSource = subjectmanager.org_view_department_lookup();
                    ReportedResource.DataBind();
                }
               


                if (e.Item.OwnerTableView.IsItemInserted)
                {
                    //item is about to be inserted
                }
                else
                {
                    if (eventId.HasValue)
                    {
                        var det = studentremarks.sch_view_sch_student_remark_detail(eventId.Value);



                        if (det != null)
                        {
                            
                            TextBox txtDescription = e.Item.FindControl("txtDescription") as TextBox;
                            if (txtDescription != null)
                            {
                                txtDescription.Text = det.description;
                            }
                            RadDatePicker RemarkDate = e.Item.FindControl("RemarkDate") as RadDatePicker;
                            if (RemarkDate != null)
                            {
                              
                                RemarkDate.SelectedDate = det.remark_date;
                            }
                            CheckBox Goodremark = e.Item.FindControl("Goodremark") as CheckBox;
                            {
                                if (Goodremark != null)
                                {
                                    Goodremark.Checked = det.good_remark;
                                }

                            }
                            CheckBox BadRemark = e.Item.FindControl("BadRemark") as CheckBox;
                            {
                                if (BadRemark != null)
                                {
                                    BadRemark.Checked = det.bad_remark;
                                }

                            }
                        }
                    }
                }
            }
        }


please how to solve that it,s argent 

thanks and regards
shanker.B

6 Answers, 1 is accepted

Sort by
0
shanker bangari
Top achievements
Rank 1
answered on 27 Feb 2010, 11:04 AM
Hi

this is shanker am doing one project my requirement is rad grid filtered by rad combo box .it"s working but I am face one problem that is when ever am click edit button and add add new button. than the rad grid is cleared.it's not showing data am second time am click the edit button it,s show the edit fields
how to sole this problem it"s argent please help me . 

This is my code

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Facility.DataSource = studentremarks.org_view_facility_lookup();
                Facility.DataBind();
                
            }
        }
        public void getdata()
        {
            grdstudentremarks.DataSource = studentremarks.sch_view_sch_student_remark_list(RadcomFiscalyear.SelectedValue.GetInteger(), Radcomclass.SelectedValue.GetInteger());
            grdstudentremarks.DataBind();
        }
        protected void Facility_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            RadcomFiscalyear.DataSource = Feeschedulemanager.sch_view_fiscal_year_lookup(Facility.SelectedValue.GetInteger());
            RadcomFiscalyear.DataBind();
            Radcomclass.DataSource = studentremarks.sch_view_class_lookup(Facility.SelectedValue.GetInteger());
            Radcomclass.DataBind();
        }

        protected void Radcomclass_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
        {
            getdata();
        }

        protected void grdstudentremarks_DeleteCommand(object source, GridCommandEventArgs e)
        {
            GridEditableItem editedItem = e.Item as GridEditableItem;
            int? eventId = GetEventId(editedItem);
            if (eventId.HasValue)
            {

                try
                {
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_del(eventId.Value, out status_text);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year deleted");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't delete Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be deleted. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, "Such Fisacl_year does not exist");
            }
        }

        protected void grdstudentremarks_InsertCommand(object source, GridCommandEventArgs e)
        {
            int? faciltyid = LogonDetails.Instance.sys_lclvar_default_facility_id;

            GridEditableItem editedItem = e.Item as GridEditableItem;
            Dictionary<string, object> values = ParseEditValues(editedItem);
            string msg;
            if (ValidateFields(values, out msg))
            {
                try
                {
                    LogonDetails det = LogonDetails.Instance;
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_ins(Convert.ToInt32(values["StudentName"])as int?,Convert.ToInt32(values["ReportedResource"])as int?,
                    values["RemarkDate"] as DateTime?,values["description"]as string ,(bool)values["BadRemark"], out status_text, (bool)values["Goodremark"]);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year inserted");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't insert Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be inserted. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, msg);
            }
        }

        protected void grdstudentremarks_UpdateCommand(object source, GridCommandEventArgs e)
        {
            int? faciltyid = LogonDetails.Instance.sys_lclvar_default_facility_id;
            GridEditableItem editedItem = e.Item as GridEditableItem;
            Dictionary<string, object> values = ParseEditValues(editedItem);
            int? eventId = GetEventId(editedItem);
            if (eventId.HasValue)
            {
                try
                {
                    string status_text = String.Empty;
                    bool res = studentremarks.org_sproc_dml_org_person_remarks_upd(eventId.Value, Convert.ToInt32(values["StudentName"]) as int?, Convert.ToInt32(values["ReportedResource"]) as int?,
                    values["RemarkDate"] as DateTime?, values["description"] as string, (bool)values["BadRemark"], out status_text, (bool)values["Goodremark"]);
                    if (res)
                    {
                        DisplayMessage(false, "Fisacl_year updated");
                    }
                    else
                    {
                        e.Canceled = true;
                        DisplayMessage(true, "Can't update Fisacl_year. Reason: " + status_text);
                    }
                }
                catch (Exception ex)
                {
                    e.Canceled = true;
                    DisplayMessage(true, "Fisacl_year cannot be updated. Reason: " + ex.Message);
                }
            }
            else
            {
                e.Canceled = true;
                DisplayMessage(true, "Such Fisacl_year does not exist");
            }
        }

        protected void grdstudentremarks_PreRender(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //GridColumn editColumn = grdstudentremarks.MasterTableView.GetColumn("EditCommandColumn");
                //if (editColumn != null) { editColumn.Visible = CanUpdate; }
                GridColumn deleteColumn = grdstudentremarks.MasterTableView.GetColumn("DeleteCommandColumn");
                if (deleteColumn != null) { deleteColumn.Visible = CanDelete; }
                if (!CanInsert)
                {
                    HideInsertCol(grdstudentremarks);
                }
                getdata();
            }
        }

        protected override int GetScreenId()
        {
            return Screens.studentremarks;
        }
        private bool ValidateFields(Dictionary<string, object> values, out string msg)
        {
            msg = String.Empty;
            bool res = false;
            if (values != null)
            {
                res = true;
                if ((!values.ContainsKey("fiscal_year")) || (values["fiscal_year"] == null) || (string.IsNullOrEmpty(values["fiscal_year"].ToString())))
                {
                    msg = "Select Fiscalyear";
                    res = false;
                }
            }
            return res;
        }
        private int? GetEventId(GridItem item)
        {
            int? id = null;
            if (item != null)
            {
                if (item.ItemIndex >= 0)
                {
                    id = item.OwnerTableView.DataKeyValues[item.ItemIndex]["person_id"].ToString().GetInteger();
                }
            }
            return id;
        }
        private Dictionary<string, object> ParseEditValues(GridEditableItem editedItem)
        {
            Dictionary<string, object> dic = new Dictionary<string, object>();

            if (editedItem != null)
            {
                editedItem.OwnerTableView.ExtractValuesFromItem(dic, editedItem);
                RadComboBox StudentName = editedItem.FindControl("StudentName") as RadComboBox;
                if (StudentName != null)
                {
                    dic.Add("StudentName", StudentName.SelectedValue.GetInteger());
                }
                RadComboBox ReportedResource = editedItem.FindControl("ReportedResource") as RadComboBox;
                if (ReportedResource != null)
                {
                    dic.Add("ReportedResource", ReportedResource.SelectedValue.GetInteger());
                }
                RadDatePicker RemarkDate = editedItem.FindControl("RemarkDate") as RadDatePicker;
                if (RemarkDate != null)
                {
                    dic.Add("RemarkDate", RemarkDate.SelectedDate);
                }
                TextBox txtDescription = editedItem.FindControl("txtDescription") as TextBox;
                if (txtDescription != null)
                {
                    dic.Add("description", txtDescription.Text);
                }

                CheckBox Goodremark = editedItem.FindControl("Goodremark") as CheckBox;
                dic.Add("Goodremark", Goodremark.Checked);
                CheckBox BadRemark = editedItem.FindControl("BadRemark") as CheckBox;
                dic.Add("BadRemark", BadRemark.Checked);
            }
            return dic;
        }

        protected void grdstudentremarks_ItemDataBound(object sender, GridItemEventArgs e)
        {
            int? faciltyid = Facility.SelectedValue.GetInteger();

            if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
            {
                int? eventId = GetEventId(e.Item);
                RadComboBox StudentName = e.Item.FindControl("StudentName") as RadComboBox;
                if (StudentName != null)
                {
                    StudentName.DataSource = studentremarks.sch_view_class_student_lookup(faciltyid,Radcomclass.SelectedValue.GetInteger(),RadcomFiscalyear.SelectedValue.GetInteger());
                    StudentName.DataBind();
                }
                RadComboBox ReportedResource = e.Item.FindControl("ReportedResource") as RadComboBox;
                if (ReportedResource != null)
                {
                    ReportedResource.DataSource = subjectmanager.org_view_department_lookup();
                    ReportedResource.DataBind();
                }
               


                if (e.Item.OwnerTableView.IsItemInserted)
                {
                    //item is about to be inserted
                }
                else
                {
                    if (eventId.HasValue)
                    {
                        var det = studentremarks.sch_view_sch_student_remark_detail(eventId.Value);



                        if (det != null)
                        {
                            
                            TextBox txtDescription = e.Item.FindControl("txtDescription") as TextBox;
                            if (txtDescription != null)
                            {
                                txtDescription.Text = det.description;
                            }
                            RadDatePicker RemarkDate = e.Item.FindControl("RemarkDate") as RadDatePicker;
                            if (RemarkDate != null)
                            {
                              
                                RemarkDate.SelectedDate = det.remark_date;
                            }
                            CheckBox Goodremark = e.Item.FindControl("Goodremark") as CheckBox;
                            {
                                if (Goodremark != null)
                                {
                                    Goodremark.Checked = det.good_remark;
                                }

                            }
                            CheckBox BadRemark = e.Item.FindControl("BadRemark") as CheckBox;
                            {
                                if (BadRemark != null)
                                {
                                    BadRemark.Checked = det.bad_remark;
                                }

                            }
                        }
                    }
                }
            }
        }


please how to solve that it,s argent 

thanks and regards
shanker.B
0
Princy
Top achievements
Rank 2
answered on 01 Mar 2010, 06:54 AM
Hi,

When you use Simple DataBinding technique to bind the grid  you will need to explicitly DataBind the grid after every Insert/Update/Delete operation you perform.an easier approach would be to use the Advanced DataBinding technique and use the NeedDataSource instead which will be called automatically on such operations.

Thanks,
Princy



0
shanker bangari
Top achievements
Rank 1
answered on 02 Mar 2010, 07:46 AM
Thank You for response It's working but it's working only in  edit mode But how to  matiance  the cancel and Add new record am clicking cancel button and Add new record the rad grid clear hot solve that please it's argent

thanks and regards

shanker.b
0
shanker bangari
Top achievements
Rank 1
answered on 02 Mar 2010, 08:27 AM
Hi

I got  row edit and cancel .But I Am click Add new record that radgrid is clear in first time than again am select combo box value the new records display.why first it,s clear how to solve that this. my code id below when ever am click add new record the radgrid is clears how to solve that .

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            SqlConnection con = new SqlConnection("Data Source=SAMA\\SQLEXPRESS;Initial Catalog=pinfo;Integrated Security=True");
            con.Open();
            SqlDataAdapter da = new SqlDataAdapter("select * from sch_view_class_lookup",con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            RadComboBox1.DataSource = ds;
            RadComboBox1.DataTextField = "class";
            RadComboBox1.DataValueField="class_id";
            RadComboBox1.DataBind();
        }
    }
    protected void RadGrid1_PageIndexChanged(object source, Telerik.Web.UI.GridPageChangedEventArgs e)
    {
        getdata();
    }
    protected void RadGrid1_SortCommand(object source, Telerik.Web.UI.GridSortCommandEventArgs e)
    {

    }
    protected void RadComboBox1_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e)
    {
        getdata();
    }
    public void getdata()
    {
        SqlConnection con = new SqlConnection("Data Source=SAMA\\SQLEXPRESS;Initial Catalog=pinfo;Integrated Security=True");
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from sch_view_sch_student_remark_list where class_id='" + RadComboBox1.SelectedValue + "'", con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        RadGrid1.DataSource = ds;
        RadGrid1.DataBind();
    }
    protected void RadGrid1_EditCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        getdata();
    }

    protected void RadGrid1_CancelCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
    {
        getdata();
    }
 
thanks and regards
shanker.B
0
Princy
Top achievements
Rank 2
answered on 02 Mar 2010, 10:26 AM
Hi,

As you are using the Simple DataBinding to bind your grid , you will need to rebind it again on clicking the Add New Record button in the CommandItem. You can handle this in the ItemCommand event and check for the CommandName "InitInsert" as shown below:

C#
protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) 
    { 
        if (e.CommandName == "InitInsert"
        { 
           BindGrid(); 
         } 
    } 


Thanks,
Princy
0
shanker bangari
Top achievements
Rank 1
answered on 05 Mar 2010, 09:12 PM
Hi,

this is shanker am doing one application my requirement is am catch particular delete column in rad grid in pretender event 

this is my code 

how to find

protected void fulldaygrid_PreRender(object sender, EventArgs e)
        {
            for (int i = 0; fulldaygrid.Items.Count > i; i++)
            {
                if(fulldaygrid.Items[i].Cells[6].Text=="YES")
                {
                    GridColumn deleteColumn = fulldaygrid.MasterTableView.Items[i].Cells[0].GetColumn("DeleteCommandColumn");
                    if (deleteColumn != null) { deleteColumn.Visible = true; }
                   
                }
               
            }
           
        }

please send solution 

thanks and regards
shanker.b
Tags
Grid
Asked by
shanker bangari
Top achievements
Rank 1
Answers by
shanker bangari
Top achievements
Rank 1
Princy
Top achievements
Rank 2
Share this question
or