asp.net - set text to textbox based on selected value from dropdownlist in gridview asp net -
i have 1 dropdown , 1 textbox in gridview. gridview contains subject name , in database there fees particular subject. want show fees textbox on every value selected dropdown.
i have done same functionality gives exact output want not after selection of subject, gives value on button click.
may have done wrong not found exact solution please help.
aspx code :
<asp:gridview id="gridview1" runat="server" showfooter="true" autogeneratecolumns="false" onrowdatabound="gridview1_rowdatabound" cssclass="eu_datatable"> <columns> <asp:templatefield headertext="program name"> <itemtemplate> <asp:dropdownlist id="ddl_proglist" runat="server" appenddatabounditems="true" onselectedindexchanged="ddl_proglist_selectedindexchanged" controlstyle-width="160px"> <asp:listitem value="-1">select</asp:listitem> </asp:dropdownlist> </itemtemplate> </asp:templatefield> <asp:templatefield headertext="fees"> <itemtemplate> <asp:textbox id="txt_fees" runat="server" controlstyle-width="75px"></asp:textbox> </itemtemplate> <footerstyle horizontalalign="right" /> <footertemplate> <asp:button id="buttonadd" runat="server" text="add new row" onclick="buttonadd_click" /> </footertemplate> </asp:templatefield> </columns> </asp:gridview>
code behind :
protected void gridview1_rowdatabound(object sender, gridviewroweventargs e) { if (e.row.rowtype == datacontrolrowtype.datarow) { control ctrl = e.row.findcontrol("ddl_proglist"); if (ctrl != null) { dropdownlist dd = ctrl dropdownlist; //sqlconnection conn = new sqlconnection(connstr); clsprog_tb objprg = new clsprog_tb(); objprg.center_code = ddl_centercode.selecteditem.tostring(); dataset ds = clsuserlogiclayer.loadprograms(objprg); dd.datatextfield = "prg_name"; dd.datavaluefield = "prg_name"; dd.datasource = ds.tables[0]; dd.databind(); } } } protected void ddl_proglist_selectedindexchanged(object sender, eventargs e) { dropdownlist ddl = sender dropdownlist; foreach (gridviewrow row in gridview1.rows) { control ctrl = row.findcontrol("ddl_proglist") dropdownlist; if (ctrl != null) { dropdownlist ddl1 = (dropdownlist)ctrl; if (ddl.clientid == ddl1.clientid) { textbox txt2 = row.findcontrol("txt_fees") textbox; clsprog_tb objprg = new clsprog_tb(); objprg.center_code = ddl_centercode.selecteditem.tostring(); objprg.prg_name = ddl1.selecteditem.tostring(); dataset ds = clsuserlogiclayer.getprogfees(objprg); if (ds.tables[0].rows.count != 0) { txt2.text = ds.tables[0].rows[0][0].tostring(); } } } } }
you can try update row , bind gridview again. need set gridview.seteditrow() before starting editing. way update datatable , bind again.
protected void ddl_proglist_selectedindexchanged(object sender, eventargs e) { dropdownlist ddl = sender dropdownlist; foreach (gridviewrow row in gridview1.rows) { gridview.seteditrow(row.rowindex); control ctrl = row.findcontrol("ddl_proglist") dropdownlist; if (ctrl != null) { dropdownlist ddl1 = (dropdownlist)ctrl; if (ddl.clientid == ddl1.clientid) { textbox txt2 = row.findcontrol("txt_fees") textbox; clsprog_tb objprg = new clsprog_tb(); objprg.center_code = ddl_centercode.selecteditem.tostring(); objprg.prg_name = ddl1.selecteditem.tostring(); dataset ds = clsuserlogiclayer.getprogfees(objprg); if (ds.tables[0].rows.count != 0) { txt2.text = ds.tables[0].rows[0][0].tostring(); } } } gridview1.updaterow(row.rowindex, false); } gridview1.databind(); }
Comments
Post a Comment