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

Grid not Clearing

1 Answer 117 Views
Grid
This is a migrated thread and some comments may be shown as answers.
susha
Top achievements
Rank 1
susha asked on 02 Dec 2010, 01:35 PM
Greetings,
                  My Scenario is as follows,I have a RadCombobox which contains two items
                            1.Select (value=0)
                             2.Office(value=1)
            On pageload every theing is working fine ie grid is loading when office is selected .The problem is that when combobox item "select" is chosen the grid is again loading.i want to show the grid as null as in the page load.

            According to my point of view the problem is NeedDataSource event is not calling except from PageLoad.

            Pls help me to solve the issue. Here is my code


 private void fill_Grid()
        {
               clsCheckListMaster chklstmaster = new clsCheckListMaster();
                ds = chklstmaster.get_CommodityInInventry(Convert.ToInt32(cmbbxOffice.SelectedValue));
                ViewState["ds"] = ds;
                if (ds.Tables[0].Rows.Count > 0)
                {

                    gdCheckListMaster.DataSource = ViewState["ds"];
                   // gdCheckListMaster.DataBind();
                    
                }
                
                

            
        }

        protected void gdCheckListMaster_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            if (cmbbxOffice.SelectedIndex > 0)
            {

                fill_Grid();
                gdCheckListMaster.DataSource =ViewState["ds"];

            }
            else
            {
                ViewState["ds"] = null;

            }
            
        }
 protected void gdCheckListMaster_PreRender(object sender, EventArgs e)
        {
            if (cmbbxOffice.SelectedIndex > 0)
            {
                gdCheckListMaster.Rebind();
                clsCheckListMaster chklstmaster = new clsCheckListMaster();

                for (int i = 0; i < gdCheckListMaster.Items.Count; i++)
                {
                    CheckBox chkbxDaily = (CheckBox)gdCheckListMaster.Items[i].FindControl("chkbxDaily");
                    CheckBox chkbxWeekly = (CheckBox)gdCheckListMaster.Items[i].FindControl("chkbxWeekly");
                    CheckBox chkbxYearly = (CheckBox)gdCheckListMaster.Items[i].FindControl("chkbxYearly");
                    DataSet ds1 = chklstmaster.getDetails_ChklstmsterANDRtlcmdtylst();
                    if (ds1.Tables[0].Rows.Count > 0)
                    {
                        for (int j = 0; j < ds1.Tables[0].Rows.Count; j++)
                        {
                            if (int.Parse(gdCheckListMaster.Items[i][gdCheckListMaster.Columns[0]].Text) == int.Parse(ds1.Tables[0].Rows[j]["INTERNALCOMMODITYID"].ToString()))
                            {
                                if (int.Parse(ds1.Tables[0].Rows[j]["DAILY"].ToString()) == 1)
                                {
                                    chkbxDaily.Checked = true;
                                    chkbxDaily.Enabled = false;
                                }
                                if (int.Parse(ds1.Tables[0].Rows[j]["WEEKLY"].ToString()) == 1)
                                {
                                    chkbxWeekly.Enabled = false;
                                    chkbxWeekly.Checked = true;
                                }
                                if (int.Parse(ds1.Tables[0].Rows[j]["YEARLY"].ToString()) == 1)
                                {
                                    chkbxYearly.Enabled = false;
                                    chkbxYearly.Checked = true;
                                }
                            }
                        }
                    }

                }
            }
            else
            {
                ViewState["ds"] = null;
            }

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 03 Dec 2010, 10:27 AM
Hello Susha,

You need to attach SelectedIndexChanged event to RadComboBox and in that event handler call the Rebind() method which in turn call NeedDataSource event. In NeedDataSource event you can populate grid based on the selected value of RadComboBox. Check out the sample code below.

C#:
protected void Page_Load(object sender, EventArgs e)
   {
      if (RadComboBox1.SelectedIndex == 0)
       {
           RadGrid1.DataSource = string.Empty;
       }
   }
protected void RadGrid1_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
   {
       bindRad();
   }
   private void bindRad()
   {
       if (RadComboBox1.SelectedIndex == 1)
       {
          // populate grid
           RadGrid1.DataSource = dt;
       }
       else
           RadGrid1.DataSource = string.Empty;
   }
   protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
   {
       RadGrid1.Rebind();
   }

Thanks,
Princy.
Tags
Grid
Asked by
susha
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or