c# - Dropdownlist does not update after adding update panel -


i have multiple dropdownlist box querying same column, same table , same database. example under memberid column have following ids.

  1. 12345
  2. 23456
  3. 34567

and have 3 different dropdownlist box shown below

    <asp:dropdownlist id="memberid3" runat="server" visible="false" onselectedindexchanged="ddlpid3_selectedindexchanged" >     </asp:dropdownlist>     <asp:dropdownlist id="memberid1" runat="server" visible="false" onselectedindexchanged="ddlpid1_selectedindexchanged">     </asp:dropdownlist>     <asp:dropdownlist id="memberid2" runat="server" visible="false" onselectedindexchanged="ddlpid2_selectedindexchanged">     </asp:dropdownlist> 

i added update panel between dropdownlist allow dropdownlist refresh upon updates/selections.

  <asp:updatepanel id="updatepanel1" runat="server">   <contenttemplate>   </contenttemplate>   </asp:updatepanel> 

for instance, when memberid1 selected 12345, other 2 dropdownlist (memberid2 , 3) not display id 12345. vice versa, when memberid1 select default value of dropdownlist, id reappears in other 2 dropdownlistbox. have added default value of ddl.

 memeberid(number).items.insert(0, new listitem(" please select member id", ""));  memeberid(number).selectedindex = 0; 

if have not mistaken property of update panel, isn't able make function work?

here binding code requested.

protected void ddllocation_selectedindexchanged(object sender, eventargs e)     {          using (var connadd = new sqlconnection("data source = localhost; initial catalog = majorproject; integrated security= sspi"))         {             connadd.open();              var sql = "select policeid policeaccount status ='available' , handle ='offcase' , postedto='" + ddllocation.selectedvalue + "'";             using (var cmdadd = new sqldataadapter(sql, connadd))             {                 dataset ds2 = new dataset();                 cmdadd.fill(ds2);                  memberid1.items.clear();                 memberid1.datasource = ds2;                 memberid1.datatextfield = "memberid";                 memberid1.datavaluefield = "memberid";                 memberid1.databind();                 memberid1.items.insert(0, new listitem("please select member id", ""));                 memberid1.selectedindex = 0;                  memberid2.items.clear();                 memberid2.datasource = ds2;                 memberid2.datatextfield = "memberid";                 memberid2.datavaluefield = "memberid";                 memberid2.databind();                 memberid2.items.insert(0, new listitem("please select member id", ""));                 memberid2.selectedindex = 0;                  memberid3.items.clear();                 memberid3.datasource = ds2;                 memberid3.datatextfield = "memberid";                 memberid3.datavaluefield = "memberid";                 memberid3.databind();                 memberid3.items.insert(0, new listitem("please select member id", ""));                 memberid3.selectedindex = 0;                } 

update

for i'm able allow other ddl re-bind , cache selected value in other dropdownlist when default value selected. however, when select other id, id being removed , wont re-bind other ddl.

protected void fillddllocations()     {         filldropdown(ddlpid1);         filldropdown(ddlpid2);         filldropdown(ddlpid3);         filldropdown(ddlpid4);         filldropdown(ddlpid5);         ddlpid1.visible = false;         ddlpid2.visible = false;         ddlpid3.visible = false;         ddlpid4.visible = false;         ddlpid5.visible = false;     }      protected void filldropdown(dropdownlist ddl)     {          using (var connadd = new sqlconnection("data source = localhost; initial catalog = majorproject; integrated security= sspi"))         {             connadd.open();              var sql = "select policeid policeaccount status ='available' , handle ='offcase' , postedto='" + ddllocation.selectedvalue + "'";             using (var cmdadd = new sqldataadapter(sql, connadd))             {                 dataset ds2 = new dataset();                 cmdadd.fill(ds2);                  ddl.items.clear();                 ddl.datasource = ds2;                 ddl.databind();                 ddl.items.insert(0, new listitem("police id", ""));                 ddl.selectedindex = 0;              }          }     }      protected void ddlpid1_selectedindexchanged(object sender, eventargs e)     {          if (ddlpid1.selectedindex > 0)         {              session["pid1"] = ddlpid1.selectedvalue;              listitem removeitem2 = ddlpid2.items.findbyvalue(ddlpid1.selectedvalue);             ddlpid2.items.remove(removeitem2);             listitem removeitem3 = ddlpid3.items.findbyvalue(ddlpid1.selectedvalue);             ddlpid3.items.remove(removeitem3);             listitem removeitem4 = ddlpid4.items.findbyvalue(ddlpid1.selectedvalue);             ddlpid4.items.remove(removeitem4);             listitem removeitem5 = ddlpid5.items.findbyvalue(ddlpid1.selectedvalue);             ddlpid5.items.remove(removeitem5);           }          else          if (ddlpid1.selecteditem.text.equals("police id"))         {             filldropdown(ddlpid1);             filldropdown(ddlpid2);             filldropdown(ddlpid3);             filldropdown(ddlpid4);             filldropdown(ddlpid5);               ddlpid2.selectedvalue = (string)session["pid2"];             ddlpid2_selectedindexchanged(this, eventargs.empty);              ddlpid3.selectedvalue = (string)session["pid3"];             ddlpid3_selectedindexchanged(this, eventargs.empty);              ddlpid4.selectedvalue = (string)session["pid4"];             ddlpid4_selectedindexchanged(this, eventargs.empty);              ddlpid5.selectedvalue = (string)session["pid5"];             ddlpid5_selectedindexchanged(this, eventargs.empty);         }          }      protected void ddlpid2_selectedindexchanged(object sender, eventargs e)     {          if (ddlpid2.selectedindex > 0)         {              session["pid2"] = ddlpid2.selectedvalue;             listitem removeitem1 = ddlpid1.items.findbyvalue(ddlpid2.selectedvalue);             ddlpid1.items.remove(removeitem1);             listitem removeitem3 = ddlpid3.items.findbyvalue(ddlpid2.selectedvalue);             ddlpid3.items.remove(removeitem3);             listitem removeitem4 = ddlpid4.items.findbyvalue(ddlpid2.selectedvalue);             ddlpid4.items.remove(removeitem4);             listitem removeitem5 = ddlpid5.items.findbyvalue(ddlpid2.selectedvalue);             ddlpid5.items.remove(removeitem5);           }         else if (ddlpid2.selecteditem.text.equals("police id"))         {             filldropdown(ddlpid1);             filldropdown(ddlpid2);             filldropdown(ddlpid3);             filldropdown(ddlpid4);             filldropdown(ddlpid5);              ddlpid1.selectedvalue = (string)session["pid1"];             ddlpid1_selectedindexchanged(this, eventargs.empty);              ddlpid3.selectedvalue = (string)session["pid3"];             ddlpid3_selectedindexchanged(this, eventargs.empty);              ddlpid4.selectedvalue = (string)session["pid4"];             ddlpid4_selectedindexchanged(this, eventargs.empty);              ddlpid5.selectedvalue = (string)session["pid5"];             ddlpid5_selectedindexchanged(this, eventargs.empty);         }       }         protected void ddlpid3_selectedindexchanged(object sender, eventargs e)     {                   if (ddlpid3.selectedindex > 0)         {              session["pid3"] = ddlpid3.selectedvalue;             listitem removeitem1 = ddlpid1.items.findbyvalue(ddlpid3.selectedvalue);             ddlpid1.items.remove(removeitem1);             listitem removeitem2 = ddlpid2.items.findbyvalue(ddlpid3.selectedvalue);             ddlpid2.items.remove(removeitem2);             listitem removeitem4 = ddlpid4.items.findbyvalue(ddlpid3.selectedvalue);             ddlpid4.items.remove(removeitem4);             listitem removeitem5 = ddlpid5.items.findbyvalue(ddlpid3.selectedvalue);             ddlpid5.items.remove(removeitem5);           }        else if (ddlpid3.selecteditem.text.equals("police id"))         {             filldropdown(ddlpid1);             filldropdown(ddlpid2);             filldropdown(ddlpid3);             filldropdown(ddlpid4);             filldropdown(ddlpid5);              ddlpid1.selectedvalue = (string)session["pid1"];             ddlpid1_selectedindexchanged(this, eventargs.empty);              ddlpid2.selectedvalue = (string)session["pid2"];             ddlpid2_selectedindexchanged(this, eventargs.empty);              ddlpid4.selectedvalue = (string)session["pid4"];             ddlpid4_selectedindexchanged(this, eventargs.empty);              ddlpid5.selectedvalue = (string)session["pid5"];             ddlpid5_selectedindexchanged(this, eventargs.empty);         }       }      protected void ddlpid4_selectedindexchanged(object sender, eventargs e)     {                     if (ddlpid4.selectedindex > 0)         {             session["pid4"] = ddlpid4.selectedvalue;              listitem removeitem1 = ddlpid1.items.findbyvalue(ddlpid4.selectedvalue);             ddlpid1.items.remove(removeitem1);             listitem removeitem2 = ddlpid2.items.findbyvalue(ddlpid4.selectedvalue);             ddlpid2.items.remove(removeitem2);             listitem removeitem3 = ddlpid3.items.findbyvalue(ddlpid4.selectedvalue);             ddlpid3.items.remove(removeitem3);             listitem removeitem5 = ddlpid5.items.findbyvalue(ddlpid4.selectedvalue);             ddlpid5.items.remove(removeitem5);           }          else if (ddlpid4.selecteditem.text.equals("police id"))         {               filldropdown(ddlpid1);             filldropdown(ddlpid2);             filldropdown(ddlpid3);             filldropdown(ddlpid4);             filldropdown(ddlpid5);              ddlpid1.selectedvalue = (string)session["pid1"];             ddlpid1_selectedindexchanged(this, eventargs.empty);              ddlpid2.selectedvalue = (string)session["pid2"];             ddlpid2_selectedindexchanged(this, eventargs.empty);              ddlpid3.selectedvalue = (string)session["pid3"];             ddlpid3_selectedindexchanged(this, eventargs.empty);              ddlpid5.selectedvalue = (string)session["pid5"];             ddlpid5_selectedindexchanged(this, eventargs.empty);         }       }             protected void ddlpid5_selectedindexchanged(object sender, eventargs e)     {                     if (ddlpid5.selectedindex > 0)         {              session["pid5"] = ddlpid5.selectedvalue;             listitem removeitem1 = ddlpid1.items.findbyvalue(ddlpid5.selectedvalue);             ddlpid1.items.remove(removeitem1);             listitem removeitem2 = ddlpid2.items.findbyvalue(ddlpid5.selectedvalue);             ddlpid2.items.remove(removeitem2);             listitem removeitem3 = ddlpid3.items.findbyvalue(ddlpid5.selectedvalue);             ddlpid3.items.remove(removeitem3);             listitem removeitem4 = ddlpid4.items.findbyvalue(ddlpid5.selectedvalue);             ddlpid4.items.remove(removeitem4);          }      else if (ddlpid5.selecteditem.text.equals("police id"))         {             filldropdown(ddlpid1);             filldropdown(ddlpid2);             filldropdown(ddlpid3);             filldropdown(ddlpid4);             filldropdown(ddlpid5);              ddlpid1.selectedvalue = (string)session["pid1"];             ddlpid1_selectedindexchanged(this, eventargs.empty);              ddlpid2.selectedvalue = (string)session["pid2"];             ddlpid2_selectedindexchanged(this, eventargs.empty);              ddlpid3.selectedvalue = (string)session["pid3"];             ddlpid3_selectedindexchanged(this, eventargs.empty);              ddlpid4.selectedvalue = (string)session["pid4"];             ddlpid4_selectedindexchanged(this, eventargs.empty);         }      } 

first of all, set autopostback property dropdowns true in markup:

<asp:dropdownlist id="memberid1" autopostback="true" runat="server" visible="false" onselectedindexchanged="ddlpid1_selectedindexchanged">     </asp:dropdownlist>     <asp:dropdownlist id="memberid2" autopostback="true" runat="server" visible="false" onselectedindexchanged="ddlpid2_selectedindexchanged">     </asp:dropdownlist>     <asp:dropdownlist id="memberid3" autopostback="true" runat="server" visible="false" onselectedindexchanged="ddlpid3_selectedindexchanged" >     </asp:dropdownlist> 

update: can store selected values in view state , retrieve after repopulating dropdownlists below:

public partial class webform2 : system.web.ui.page {     bool bflag = true;      protected void page_load(object sender, eventargs e)     {         if (!ispostback)         {             fillddllocations();         }     }      //properties store selected value in viewstate      protected string memberid1selection     {                 {             if (viewstate["memberid1selection"] != null)                 return viewstate["memberid1selection"].tostring();             return "";         }         set { viewstate["memberid1selection"] = value; }     }      protected string memberid2selection     {                 {             if (viewstate["memberid2selection"] != null)                 return viewstate["memberid2selection"].tostring();             return "";         }         set { viewstate["memberid2selection"] = value; }     }      protected string memberid3selection     {                 {             if (viewstate["memberid3selection"] != null)                 return viewstate["memberid3selection"].tostring();             return "";         }         set { viewstate["memberid3selection"] = value; }     }       protected void fillddllocations()     {         filldropdown(memberid1);         filldropdown(memberid2);         filldropdown(memberid3);         memberid1.visible = true;         memberid2.visible = true;         memberid3.visible = true;     }      protected void filldropdown(dropdownlist ddl)     {          using (var connadd = new sqlconnection("data source = localhost; initial catalog = majorproject; integrated security= sspi"))         {             connadd.open();              var sql = "select policeid policeaccount status ='available' , handle ='offcase' , postedto='" + ddllocation.selectedvalue + "'";             using (var cmdadd = new sqldataadapter(sql, connadd))             {                 dataset ds2 = new dataset();                 cmdadd.fill(ds2);                   ddl.items.clear();                 ddl.datasource = ds2;                 ddl.datatextfield = "memberid";                 ddl.datavaluefield = "memberid";                 ddl.databind();                 ddl.items.insert(0, new listitem("please select member id", ""));                 ddl.selectedindex = 0;              }          }     }      protected void indexchanged(dropdownlist ddlchanged, dropdownlist ddltofilter1, dropdownlist ddltofilter2)     {         string removevalue1 = ddlchanged == memberid1 ? memberid1selection : (ddlchanged == memberid2 ? memberid2selection : memberid3selection);         string selvalue2 = ddlchanged == memberid1 ? memberid2selection : (ddlchanged == memberid2 ? memberid1selection : memberid1selection);         string selvalue3 = ddlchanged == memberid1 ? memberid3selection : (ddlchanged == memberid2 ? memberid3selection : memberid2selection);          bflag = false;//prevent fireing code again while changing index         if (removevalue1 != "")         {             listitem item1 = ddltofilter1.items.findbyvalue(removevalue1);             ddltofilter1.items.remove(item1);             listitem item2 = ddltofilter2.items.findbyvalue(removevalue1);             ddltofilter2.items.remove(item2);                     }          if (selvalue3 != "")         {             listitem item3 = ddltofilter1.items.findbyvalue(selvalue3);             ddltofilter1.items.remove(item3);         }         if (selvalue2 != "")         {             listitem item4 = ddltofilter2.items.findbyvalue(selvalue2);             ddltofilter2.items.remove(item4);         }          bflag = false;         ddltofilter1.selectedindex = ddltofilter1.items.indexof(ddltofilter1.items.findbyvalue(selvalue2));         ddltofilter2.selectedindex = ddltofilter2.items.indexof(ddltofilter2.items.findbyvalue(selvalue3));     }      protected void ddlpid1_selectedindexchanged(object sender, eventargs e)     {         memberid1selection = memberid1.selectedvalue;         if (bflag)         {             filldropdown(memberid2);             filldropdown(memberid3);             indexchanged(memberid1, memberid2, memberid3);         }     }      protected void ddlpid2_selectedindexchanged(object sender, eventargs e)     {         memberid2selection = memberid2.selectedvalue;         if (bflag)         {             filldropdown(memberid1);             filldropdown(memberid3);             indexchanged(memberid2, memberid1, memberid3);         }     }     protected void ddlpid3_selectedindexchanged(object sender, eventargs e)     {         memberid3selection = memberid3.selectedvalue;         if (bflag)         {             filldropdown(memberid1);             filldropdown(memberid2);             indexchanged(memberid3, memberid1, memberid2);         }     } } 

i have tested code , working me. hope helps!


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -