使用JS獲取GridView內部的值

js部分:

function getIt(obj){ 
            var r,c,o;
            o = obj;
            while(o.tagName != "TD"){ 
                o = o.parentNode; 
                if(o.tagName != "TD"){ 
                    return;
                }
            }
            c =  o.cellIndex; 
            while(o.tagName != "TR") 
            o = o.parentNode; 
            if(o.tagName != "TR"){
                return;
            }
            r = o.rowIndex;

            var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
            var total = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[1].firstChild.innerText;
            var tmoney = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[3].firstChild.value;
            if(tmoney == ""){
                tmoney = 0;
            }
            if(isNaN(tmoney)){
                alert("請輸入數字");
                btn.disabled = true;
                return;
            }
            if(tmoney-total>0){
                alert("輸入金額太大");
                btn.disabled = true;
                return;
            }
            document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[r].cells[2].firstChild.innerText = total-tmoney;
            SetMoney(); 
            SetTmoney();

        } 
        
        //計算總現金
        function SetMoney(){
            var money = document.getElementById("<%=lbl_Money.ClientID %>");
            var flag =0;
            var rows = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows.length;
            for(var i=1;i<rows;i++){
                flag = flag-(-document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[i].cells[2].firstChild.innerText);
            }
            money.innerText = flag;
            document.getElementById("<%=hf_Money.ClientID %>").value = flag;
            ShiXiWang.WebServices.WebService.CheckMoney(flag,CallBackSetMoney);
        }
        
        function CallBackSetMoney(result){
            var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
             var error = document.getElementById("<%=lbl_Error1.ClientID %>");
             if(result == "1"){
                error.innerText = "你的賬戶現金餘額不足";
                btn.disabled = true;
             }  
             else{
                error.innerText = "";
                btn.disabled = false;
             } 
        }
        
        //計算總現金券
        function SetTmoney(){
            var tmoney = document.getElementById("<%=lbl_Tmoney.ClientID %>");
            var flag =0;
            var rows = document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows.length;
            for(var i=1;i<rows;i++){
                flag = flag-(-document.getElementById("ctl00_ContentPlaceHolder1_GridView_Order").rows[i].cells[3].firstChild.value);
            }
            tmoney.innerText = flag;
            document.getElementById("<%=hf_Tmoney.ClientID %>").value = flag;
            ShiXiWang.WebServices.WebService.CheckTmoney(flag,CallBackSetTmoney);
        }
        
        function CallBackSetTmoney(result){
            var btn = document.getElementById("ctl00_ContentPlaceHolder1_btn_Pay");
             var error = document.getElementById("<%=lbl_Error2.ClientID %>");
             if(result == "1"){
                error.innerText = "你的賬戶現金券餘額不足";
                btn.disabled = true;
             }  
             else if(btn.disabled==false){
                error.innerText = "";
                btn.disabled = false;
             }
         }

html部分:

<asp:GridView ID="GridView_Order" runat="server"
                    AllowSorting="True" AutoGenerateColumns="False" Width="96%" 
                    EmptyDataText="沒有找到項目"  DataKeyNames="pid" 
                        onrowdatabound="GridView_Order_RowDataBound" >
                    <EmptyDataRowStyle BorderStyle="None" CssClass="datagrid_empty_style" />
                     <Columns>
                         <asp:BoundField DataField="pname" HeaderText="培訓項目">
                         <HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
                         <ItemStyle HorizontalAlign="center" />
                         </asp:BoundField>
                         <asp:TemplateField HeaderText="費用(元)">
                             <ItemTemplate>
                                 <asp:Label ID="lbl_Total" runat="server" Text='<%#Eval("price") %>'></asp:Label>
                             </ItemTemplate>
                             <HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" Height="40px" />
                             <ItemStyle HorizontalAlign="center" />
                         </asp:TemplateField>
                         <asp:TemplateField HeaderText="現金支付">
                             <ItemTemplate>
                                 <asp:Label ID="lbl_Money" runat="server" Text="0"></asp:Label>
                             </ItemTemplate>
                             <HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
                             <ItemStyle HorizontalAlign="center" />
                         </asp:TemplateField>
                         <asp:TemplateField HeaderText="現金券支付">
                             <ItemTemplate>
                                 <input type="text" runat="server" style="width:150px;" id="txt_Tmoney" class="textbox_style" value="0" οnkeyup="getIt(this)" />
                             </ItemTemplate>
                             <HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
                             <ItemStyle HorizontalAlign="center" />
                         </asp:TemplateField>
                         <asp:TemplateField HeaderText="操作">
                             <ItemTemplate>
                                 <asp:ImageButton ID="lbtn_Del" οnclick="lbtn_Del_Click" runat="server" ImageUrl="~/images/SyTrain/shanqu.gif" OnClientClick="return confirm('確定要刪除嗎?');" />
                             </ItemTemplate>
                             <HeaderStyle HorizontalAlign="center" BackColor="#ECF7FF" />
                             <ItemStyle HorizontalAlign="center" />
                         </asp:TemplateField>
                     </Columns>
                        <SelectedRowStyle CssClass="datagrid_selected_style" />
                        <HeaderStyle BackColor="#ECF7FF" />
              </asp:GridView>

問題的難點有二:1。確定GridView的行與列;2。在html解析後服務器控件的形式;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章