c# - Why DropDownList.SelectedIndexChanged event does not fire? -


i have dropdown bounded objectdatasource. on data bound event, adding "--select--" value on 0 index. have linkbutton on page , on client click, selecting different item on drop down (using javascript). suppose there 3 items --select--, option1, option2 , option3 , on link button's client click selected option3, if select default value "--select--", not fire selectedindexchanged event. if select other value fires. why not work default value?

protected void page_load(object sender, eventargs e) {     if (!ispostback && !iscallback)     {       this.filldropdown("--select--");     }     else     {                                     if (this.drp.selecteditem != null)             this.filldropdown(this.drp.selecteditem.text);         else             this.filldropdown("--select--");     } }  protected void filldropdown(string viewname) {            this.objectdatasource.select();      this.drp.items.clear();     this.drp.selectedindex = -1;     this.drp.databind();      if (this.drp.items.count > 0)     {                    listitem item = this.drp.items.findbytext(viewname);         if (item == null)         {             item = this.drp.items.findbytext("--select--");         }         if (item != null)         {             int selectedindex = this.drp.items.indexof(item);             this.drp.items[selectedindex].selected = true;             this.drp.selectedindex = selectedindex;                                 }     } }  protected void drp_ondatabound(object sender, eventargs e) {     if (this.drp.items.count > 0)     {                        this.drp.items.insert(0, new listitem("--select--", "-1"));                     }                         }  protected void drp_selectedindexchanged(object sender, eventargs e) {                 if (drp.selectedvalue != "-1")     {         session["selecteditem"] = this.drp.selecteditem.text;      }             } /// button callback not postback  <dx:aspxcallback id="aspxcallback1" runat="server" clientinstancename="callback1" oncallback="savefilter_click">     <clientsideevents callbackcomplete="function(s,e){callback1success(s,e);}" /> </dx:aspxcallback>  <dx:aspxbutton id="btn_save" runat="server" causesvalidation="false" height="20px" text="save" autopostback="false" usesubmitbehavior="false">     <clientsideevents click="function(s, e) {             var isvalid =  validate(this, txt1.gettext());             if(isvalid==true) {                 callback1.performcallback('save');                                            }               else {                 e.processonserver = false;             }}">     </clientsideevents> </dx:aspxbutton>  protected void savefilter_click(object sender, callbackeventargs e) {     if (e.parameter.tostring() == "save")     {         if (!string.isnullorempty(txt_savesavesearch.text))         {             // saving data data base.             this.filldropdown(txt.text);                                 e.result = aspxcallback.getrenderresult(this.drp);         }     } }  function callback1success(s,e) {      var ctrl = document.getelementbyid('ctl00_contentholder_drp');      ctrl.outerhtml = e.result;         } 

update:

based on revised question -

  1. why don't set appenddatabounditems on dropdownlist? property allow dropdownlist append items existing ones.

    <asp:dropdownlist id='dropdownlist1' runat='server' autopostback='true'  enableviewstate='true' appenddatabounditems='true'>      <asp:listitem selected='true' text='--select--' value='1'></asp:listitem></asp:dropdownlist> 
  2. the page_load method doesn't want to. else part of executed if 1 of them true ..ex: if "postback true" or "callback true" go else part. suggested in (1) step, set appenddatabounditems , remove code add "--select--".


most issue viewstate, set enableviewstate="true"

<%@ page title="" language="c#" masterpagefile="~/site.master" autoeventwireup="true" codefile="test.aspx.cs" enableviewstate="true"%> 

and if using maste pages you'll have enable on too.

<%@ master language="c#" autoeventwireup="true" codefile="site.master.cs" inherits="site" enableviewstate="true" classname="site" %> 

and in dropdown web control autopostback="true"

<asp:dropdownlist id='dropdownlist1' runat='server' autopostback='true'      onselectedindexchanged='handleondropdownlistselectedindexchanged'> </asp:dropdownlist> 

Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -