asp.net - Javascript with ASP:TextBox inside Repeater -
okay i've got little problem combining own javascript asp server controls.
the picture: i've got couple of asp:textboxes on page created repeater. goal sum values user types these textboxes. must happen whenever user changes content of textboxes. (on bottom of page got little price calculator, works server side code want make more dynamic, i'm talking txtteam , txtpart)
<asp:content id="content3" contentplaceholderid="contentplaceholder" runat="server"> <script type="text/javascript"> </script> <div id='inputdiv'> <h1> students per team</h1> <table> <tr> <td> team </td> <td> actual </td> <td> maximum </td> </tr> <asp:repeater id="repeater2" runat="server" datasourceid="odsteams"> <itemtemplate> <tr> <td id='td<%# eval("team_id") %>'> <%# eval("name") %> </td> <td id='txtteam<%# eval("team_id") %>'> <asp:textbox id="txtteam" runat="server"></asp:textbox> <asp:rangevalidator enableclientscript="true" id="rgvteams" runat="server" errormessage="*" minimumvalue="0" maximumvalue='<%# eval("st_max") %>' controltovalidate="txtteam"></asp:rangevalidator> </td> <td id='lblteam<%# eval("team_id") %>'> <asp:label runat="server"> <%# eval("st_max") %> </asp:label> </td> </tr> </itemtemplate> </asp:repeater> </table> <asp:objectdatasource id="odsteams" runat="server" oldvaluesparameterformatstring="original_{0}" selectmethod="getteamsbydelegationid" typename="erastableadapters.tbl_teamtableadapter" onselecting="odsteams_selecting"> <selectparameters> <asp:parameter name="delegation_id" type="int32" /> </selectparameters> </asp:objectdatasource> <h1> additional participants</h1> <table> <tr> <td> category </td> <td> actual </td> <td> maximum </td> </tr> <asp:repeater id="repeater1" runat="server" datasourceid="odsparticipantscat"> <itemtemplate> <tr> <td id='<%# eval("participant_category_id") %>'> <%# eval("name") %> </td> <td id='txtpart<%# eval("participant_category_id") %>'> <asp:textbox id="txtpart" runat="server" enabled='<%# getmax(eval("key").tostring()) > 0 %>'></asp:textbox> <asp:rangevalidator enableclientscript="true" id="rgvpart" runat="server" errormessage="*" minimumvalue="0" maximumvalue='<%# getmax(eval("key").tostring())%>' controltovalidate="txtpart"></asp:rangevalidator> </td> <td id='lblpart<%# eval("participant_category_id") %>'> <asp:label runat="server"> <%# getmax(eval("key").tostring())%> </asp:label> </td> </tr> </itemtemplate> </asp:repeater> <asp:objectdatasource id="odsparticipantscat" runat="server" oldvaluesparameterformatstring="original_{0}" selectmethod="getadditionalparticipantcategories" typename="erastableadapters.tbl_participant_categorytableadapter"> </asp:objectdatasource> </table> </div> <h1> advance paid</h1> <table> <tr> <td> number of participants </td> <td> days </td> <td> price </td> <td> total </td> </tr> <tr> <td runat="server" id="tdnumberpart1"> 0 </td> <td runat="server" id="tddays1"> 0 </td> <td runat="server" id="tdprice1"> 0 </td> <td runat="server" id="tdtotal1"> 0 </td> </tr> <tr> <td runat="server" id="tdnumberpart2"> 0 </td> <td> n/a </td> <td runat="server" id="tdprice2"> 0 </td> <td runat="server" id="tdtotal2"> 0 </td> </tr> <tr> <td> </td> <td> </td> <td> </td> <td runat="server" id="tdgrandtotal" style="font-weight: bold"> 0 </td> </tr> </table> <asp:button runat="server" id="btnconfirm" text="confirm" onclick="btnconfirm_click" style="height: 29px" /> <asp:label runat="server" id="lblinfo"></asp:label>
give tables ids, eg <table id="students"> , <table id="additional">. then, iterate rows, find input element in each row, , sum values go:
function sumtable(id) { var count = 0; var studenttable = document.getelementbyid(id); (var i=1; in studenttable.rows; i++) { var r = studenttable.rows[i]; var input = r.getelementsbytagname("input")[0]; var n = parsefloat(input.value); if (isfinite(n)) count += n; } return count; } var totalparticipants = sumtable("students") + sumtable("additional");
Comments
Post a Comment