Click here to Skip to main content
15,908,841 members
Please Sign up or sign in to vote.
2.50/5 (2 votes)
See more:
my requirement is ...if i select spme value in combobox1 the related values of combobox1 have to display in cmbbox2
i tried with this code its not working


for cmbbox1

C#
private void fillModule()
      {
          DatasetForm = glbObj.srv.ViewDataSRV(clsGetViewXmlData.GetViewXMLData(gInfo.SchemaName, GlobalSP.FormInsert.Usp_FormInsert_SelectModule.ToString(), glbObj.inputMasKey));
          DataTable Dt = DatasetForm.Tables[0];
          if (Dt.Rows.Count > 0)
          {

              cmbmoduleid.DataSource = Dt;
              cmbmoduleid.DisplayMember = "Module_Name"; //colum you want to show in comboBox
              cmbmoduleid.ValueMember = "Module_Id";
          }
      }



for cmb2 i've written this code


C#
private void cmbmoduleid_SelectedIndexChanged(object sender, EventArgs e)
{

    if (cmbmoduleid.SelectedIndex > -1 && cmbmoduleid.Text == "")
    {

        //DataRow selectedDataRow = ((DataRowView)cmbmoduleid.SelectedItem).Row;
        if (cmbmoduleid.SelectedText != "")
        {
            MaskId = Convert.ToInt32(cmbmoduleid.SelectedText);
            DatasetForm = glbObj.srv.ViewDataSRV(clsGetViewXmlData.GetViewXMLData(gInfo.SchemaName, GlobalSP.FormInsert.Usp_FormInsert_SelectSubModule.ToString(), MaskId));
            DataTable Dt = DatasetForm.Tables[0];

            //cmbmoduleid.DataSource = new BindingSource(ImpecApplication.Cust.Reports.Global.GLB_FORMS, null);
            cmbsubmoduleid.DataSource = Dt;
            cmbsubmoduleid.DisplayMember = "SubModule_Name"; //colum you want to show in comboBox
            cmbsubmoduleid.ValueMember = "SubModule_ID";
        }
    }


}
Posted
Comments
Sebastian T Xavier 26-Jun-12 2:39am    
do spell check

Will this condition ever come true?

SQL
if (cmbmoduleid.SelectedIndex > -1 && cmbmoduleid.Text == "")
    {.....}


I think the problem is here.

Please make sure the below code will not throw type cast exception

C#
MaskId = Convert.ToInt32(cmbmoduleid.SelectedText);


NB: Why should we use dataset if it contains only one datatable. Use datatable instead. That will boost performance.

Regards
Sebastian
 
Share this answer
 
v3
you need to get SelectedValue not SelectedText

C#
MaskId = Convert.ToInt32(cmbmoduleid.SelectedValue);


and also you better use int.TryParse
C#
private void cmbmoduleid_SelectedIndexChanged(object sender, EventArgs e)
{
 
   var mskId;

   if(int.TryParse(cmbmoduleid.SelectedValue, out mskId))
   {
      DatasetForm = glbObj.srv.ViewDataSRV(clsGetViewXmlData.GetViewXMLData(gInfo.SchemaName,    GlobalSP.FormInsert.Usp_FormInsert_SelectSubModule.ToString(), mskId));
     // rest of the code
   }
}
 
Share this answer
 
v3
Putt following conditon ....
SQL
if (cmbmoduleid.SelectedIndex > -1 )
    {.....}

following condition is wrong ....
SQL
if (cmbmoduleid.SelectedIndex > -1 && cmbmoduleid.Text == "")
    {
 
Share this answer
 

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