Quantcast
Channel: Web Forms
Viewing all articles
Browse latest Browse all 23244

dropdownchanged event not firing when i select first populated value later in usercontrol in asp.net

$
0
0

Hi,

I have a dropdownlist in a usercontrol as shown below

   <asp:dropdownlist id="ddlLanguage" runat="server" AutoPostBack="true" EnableViewState="true" onselectedindexchanged="ddlLanguage_SelectedIndexChanged">
        </asp:dropdownlist>

in code behind

if (!IsPostBack)
{
  //dt - is list of languages availbale in DB
 //value[0]-contains lang currently to be binded to dropdownlist based
 //remaining values (values [1]) to are to be populated to textbox
  LoadModuleInfo(dt,values)
}

else
{
  LoadModuleInfo(dt,new_values)
}

     private void LoadModuleInfo(System.Data.DataTable dtLanguages, string[] values)
    {
        this.txbxModuleName.Text = values[1];

        this.ddlLanguage.DataSource = dtLanguages;
        this.ddlLanguage.DataTextField = "language_description";
        this.ddlLanguage.DataValueField = "language";
        this.ddlLanguage.DataBind();

        // set up selections on the screen

        this.ddlLanguage.SelectedIndex = this.getIndex(dtLanguages, values[0]);

    }

  protected void ddlLanguage_SelectedIndexChanged(object sender, System.EventArgs e)
    {
          //get new values ( values[0] and values[1])
         LoadModuleInfo(dtLanguages, values);
     }

 protected int getIndex(DataTable dt, string recordId)
  {
    int intCt = 0;

    foreach (System.Data.DataRow dr in dt.Rows)
    {
        if (dr[0].ToString() == recordId)
        {
            break;
        }
        else
        {
            intCt++;
        }
    }

    return intCt;
}

I have wriiten the above code to bind the dropdwonliast and to set the seelcted item based on values present in DB.

Suppose, in my DB i have values

en

de

es

fr

it

First time when page loads, i will populate DDL based on value availbale in DB and set selected item of DDL as 'de'. When dropdownlist selection is changed to 'en', english content from DB has to fetched and populated which is happening. If i again change my DDL selection to 'de', my selected change event is not firing.

When i try to remove else case in page load i.e. keep only below in page_load

if (!IsPostBack)

  LoadModuleInfo(dt,values)
}

Only page_load is happening but not selected change event of DDL

Please help.


Viewing all articles
Browse latest Browse all 23244

Trending Articles