c# - Problems with dropdown list in template field in gridview -


okay have gridview following html shows:

 <asp:gridview id="griddetaljinarudzbe" autogeneratecolumns="false" allowpaging="true" pagesize="10" runat="server" onrowcommand="griddetaljinarudzbe_rowcommand" onpageindexchanging="griddetaljinarudzbe_pageindexchanging" onrowdatabound="griddetaljinarudzbe_rowdatabound">         <columns>            <asp:boundfield datafield="naziv" headertext="naziv" />            <asp:boundfield datafield="sifra" headertext="Šifra" />            <asp:boundfield datafield="cijena" headertext="cijena" />            <asp:boundfield datafield="kolicina" headertext="količina" />                 <asp:templatefield headertext="ocjena">                 <itemtemplate>                     <asp:dropdownlist id="dropdownlist1" runat="server"></asp:dropdownlist>                 </itemtemplate>             </asp:templatefield>           <asp:templatefield>               <itemtemplate>                    <asp:linkbutton id="btnocijeni" title="ocijeni proizvod" commandname="ocijenicommand" commandargument='<%# eval("proizvodid") %>' runat="server"><img src="../images/ocijeni.png" /></asp:linkbutton>               </itemtemplate>           </asp:templatefield>         </columns>     </asp:gridview> 

for filling out dropdown list each record in db have used following code (rowdatabound event):

if (e.row.rowtype == datacontrolrowtype.datarow)             {                 dropdownlist drop = e.row.findcontrol("dropdownlist1") dropdownlist;                 drop.items.add(new listitem(""));                 drop.items.add(new listitem("1"));                 drop.items.add(new listitem("2"));                 drop.items.add(new listitem("3"));                 drop.items.add(new listitem("4"));                 drop.items.add(new listitem("5"));             } 

for selecting value dropdown list in each row:

   foreach (gridviewrow gr in griddetaljinarudzbe.rows) {                         dropdownlist drop = gr.findcontrol("dropdownlist1") dropdownlist;                      // selecting value dropdownlist                   int selectednumber = convert.toint32(drop.text); } 

now problem is, lets have 2 records in grid, , pick value second dropdown list in 2nd row (lets suppose did that). , when press button of first record in first row, value have picked 2nd dropdown list inserted db if selected first drop list.

also know if possible after has been picked in drop list , inserted db, disable dropdownlist , turn static text show 5 instead of dropdownlist?

can me out please? i've tried haven't succeeded yet. :/

edit:

when select second grid(2nd dropdownlist u can see picture) , when press button grade first product, grade 2nd dropdown list have selected. more clear now?

problem

thanks!

edit here code yogi:

   list<hsp_proizvodi_sprijecidvaputaocijeniti_result> lista = servisnaklasa.sprijecidvostrukoocjenjivanje(proizvodid, sesija.kupac.kupacid);                 foreach (gridviewrow gr in griddetaljinarudzbe.rows)                 {                     if (lista.count == 0)                     {                         dropdownlist drop = gr.findcontrol("dropdownlist1") dropdownlist;                         if (drop.selectedindex != 0)                         {                             ocjene o = new ocjene();                             o.kupacid = sesija.kupac.kupacid;                             o.proizvodid = proizvodid;                             o.datum = datetime.now.tostring("dd/mm/yyyy hh:mm:ss", system.globalization.cultureinfo.invariantculture);                             o.ocjena = convert.toint32(drop.text);                             servisnaklasa.ocjenjivanjeproizvoda(o);                             string poruka = "proizvod uspješno ocijenjen!";                             clientscript.registerstartupscript(this.gettype(), "myalert", "alert('" + poruka + "');", true);                             drop.selectedindex = 0;                          }                     }                     else                     {                         string poruka = "ovaj proizvod ste već ocijenili!";                         clientscript.registerstartupscript(this.gettype(), "myalert", "alert('" + poruka + "');", true);                     }                 } 

follow approach

  1. add gridview's rowcommand event.
  2. give command argument link button.like this

    <asp:linkbutton id="btnocijeni" title="ocijeni proizvod" commandname="ocijenicommand" commandargument='<%#eval("proizvodid") + ";" +((gridviewrow) container).rowindex%>' runat="server"><img src="../images/ocijeni.png" /></asp:linkbutton> 

(i added 1 more field in command argument rowindex)

  1. now ever click on link button rowcommand event called.

    protected void griddetaljinarudzbe_rowcommand(object sender, gridviewcommandeventargs e) { if (e.commandname == "ocijenicommand") { arg = e.commandargument.tostring().split(';'); int index = convert.toint32(arg[1].tostring()); //finding same row dropdown list //this give same row dropdownlist not below row dropdownlist drpdwn1= (dropdownlist)griddetaljinarudzbe.rows[index].findcontrol("dropdownlist1");
    //now boundfield values gridviewrow row = gridview1.rows[index]; string nazivtext= row.cells[0].text;//it give naziv's value //same way can other field values //and save db. } }

edit

for converting drop down label

  1. add label below drop down list , make visible=false

     <itemtemplate>                 <asp:dropdownlist id="dropdownlist1" runat="server"></asp:dropdownlist>                 <asp:label id="lbl_fordrpdwnval" runat="server"  visible="false"></asp:label>                

  2. now in same item command event add below code after inserting values db.

                        //access new label                     label lblfordrpdwn= (label)griddetaljinarudzbe.rows[index].findcontrol("lbl_fordrpdwnval");                     lblfordrpdwn.text= drpdwn1.selecteditem.text;//setting value dropdown lbel                     lblfordrpdwn.visible=true;//showing label                     drpdwn1.visible=false;//hiding dropdown 

Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -