c# - Error with second dropdownlist in DataList -
i have datalist have 2 dropdowns: first select table , second select column. far good.
the problem starts when go next item in datalist , make selection on dropdownlist "ddltable". after doing this, second dropdownlist of previous changes value first possible item. can me out? how can stop doing this?
here code:
protected void page_load(object sender, eventargs e) { try { scriptmanager scriptmanager = scriptmanager.getcurrent(this.page); if (!scriptmanager.isinasyncpostback && !ispostback) { datalist_load(datalistitems); } } catch (exception ex) { throw ex; } } protected void datalist_load(int itens) { try { list<int> mylist = new list<int>(); (int = 0; < itens; i++) mylist.add(i); dlquery.datasource = mylist; dlquery.databind(); } catch (exception ex) { throw ex; } } protected void dlquery_itemdatabound(object sender, datalistitemeventargs e) { try { if (e.item.itemtype == listitemtype.item || e.item.itemtype == listitemtype.alternatingitem) { var ddl = e.item.findcontrol("ddltable") dropdownlist; ddltable_load(ddl); } } catch (exception ex) { throw ex; } } protected void ddltable_load(dropdownlist ddl) { try { connection cn = new connection(); sqlconnection sqlconn = cn.sqllocalconn; sqlcommand sqlcmd = new sqlcommand("stp_portal_globalmgmtqueryitens", sqlconn); sqlcmd.commandtype = system.data.commandtype.storedprocedure; ddl.datasource = cn.executesqlcmd(sqlconn, sqlcmd); ddl.datatextfield = "name"; ddl.datavaluefield = "id"; ddl.databind(); ddl.items.insert(0, "select one"); } catch (exception ex) { throw ex; } } protected void ddltable_selectedindexchanged(object sender, eventargs e) { try { dropdownlist ddl1 = sender dropdownlist; if (ddl1.selectedindex > 0) { //string aux = ddl1.uniqueid; dropdownlist ddl2 = (dropdownlist)ddl1.parent.findcontrol("ddlcolumn"); //string aux2 = ddl2.uniqueid; ddlcolumn_load(ddl2, ddl1.selectedvalue); } } catch (exception ex) { throw ex; } } protected void ddlcolumn_load(dropdownlist ddl, string val) { try { connection cn = new connection(); sqlconnection sqlconn = cn.sqllocalconn; sqlcommand sqlcmd = new sqlcommand("stp_portal_globalmgmtqueryitemcolumns", sqlconn); sqlcmd.commandtype = system.data.commandtype.storedprocedure; sqlcmd.parameters.add("@inttableid", sqldbtype.int).value = val; ddl.datasource = cn.executesqlcmd(sqlconn, sqlcmd); ddl.datatextfield = "name"; ddl.datavaluefield = "id"; ddl.databind(); ddl.items.insert(0, "select one"); } catch (exception ex) { throw ex; } } protected void ddlcolumn_selectedindexchanged(object sender, eventargs e) { try { dropdownlist ddl = sender dropdownlist; if (ddl.selectedindex > 0) { //just test } } catch (exception ex) { throw ex; } }
aspx
<asp:datalist id="dlquery" runat="server" repeatcolumns="3" repeatdirection="horizontal" enableviewstate="true" onitemdatabound="dlquery_itemdatabound"> <itemtemplate> <table> <tr> <td align="right" style="height: 20px"> <asp:label id="lbltable" runat="server" font-bold="true" font-names="verdana" font-size="7pt" text="table" forecolor="#005780"></asp:label> </td> <td align="left"> <asp:dropdownlist id="ddltable" runat="server" autopostback="true" font-names="verdana" font-size="7pt" onselectedindexchanged="ddltable_selectedindexchanged"> </asp:dropdownlist> </td> </tr> <tr> <td align="right" style="height: 20px"> <asp:label id="lblcolumn" runat="server" font-bold="true" font-names="verdana" font-size="7pt" text="column" forecolor="#005780"></asp:label> </td> <td align="left"> <asp:dropdownlist id="ddlcolumn" runat="server" font-names="verdana" font-size="7pt" autopostback="true" onselectedindexchanged="ddlcolumn_selectedindexchanged"> </asp:dropdownlist> </td> </tr> <tr> <td align="right" style="height: 20px"> <asp:label id="lbltoshow" runat="server" font-bold="true" font-names="verdana" font-size="7pt" text="to show" forecolor="#005780"></asp:label> </td> <td align="left"> <asp:checkbox id="cbtoshow" runat="server" font-names="verdana" font-size="7pt" /> </td> <tr> <td align="right" style="height: 20px"> <asp:label id="lblcrit" runat="server" font-bold="true" font-names="verdana" font-size="7pt" forecolor="#005780" text="criteria"></asp:label> </td> <td align="left"> <asp:textbox id="txtcrit" runat="server" font-names="verdana" font-size="7pt" width="95%"></asp:textbox> </td> </tr> <tr> <td align="right" style="height: 20px"> <asp:label id="lblor" runat="server" font-bold="true" font-names="verdana" font-size="7pt" forecolor="#005780" text="or"></asp:label> </td> <td align="left"> <asp:textbox id="txtor" runat="server" font-names="verdana" font-size="7pt" width="95%"></asp:textbox> </td> </tr> </tr> </table> </itemtemplate> <separatortemplate> <table> <tr> <td align="right" style="width: 20px"> </td> </tr> <tr> <td align="right" style="width: 20px"> </td> </tr> <tr> <td align="right" style="width: 20px"> </td> </tr> <tr> <td align="right" style="width: 20px"> </td> </tr> <tr> <td align="right" style="width: 20px"> </td> </tr> </table> </separatortemplate> </asp:datalist>
Comments
Post a Comment