js獲取gridview模板列中textbox行列的值

下面一個例子:在gridview中第一列輸入數值,第二列輸入數值,點擊第三列的時候進行計算 求和,若是不符合標記爲紅色字體。javascript

如圖:html

 

代碼 :java

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function setClf(con) {
            var table = document.getElementById("GridView1");
            var tr = table.getElementsByTagName("tr");
            //獲取鼠標點擊的元素  
            var e = event.srcElement;
            //獲取元素所在的行的行號(表頭行號從0開始)。注意:parentElement只適用於IE瀏覽器,而parentNode則符合DOM標準。  
            //var rowIndex=e.parentElement.parentElement.rowIndex ;  
            var i = e.parentNode.parentNode.rowIndex; //獲取GridView控件  分別獲取選定行指定列的值
            var a, b,c;

            a = parseFloat(tr[i].getElementsByTagName("td")[0].getElementsByTagName("input")[0].value);
            b = parseFloat(tr[i].getElementsByTagName("td")[1].getElementsByTagName("input")[0].value);

            //上面爲獲取gridview中textbox的,若是爲lable則以下寫法
            //  b = parseFloat(tr[i].getElementsByTagName("td")[1].getElementsByTagName("span")[0].innerText);
           
            sum1 = a+b; //計算方法改變 
            c = parseFloat(tr[i].getElementsByTagName("td")[2].getElementsByTagName("input")[0].value);
            if (sum1 != c) {
                con.style.color = "Red";

            }
            else con.style.color = "black";

        } 
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
            Width="100%" BackColor="White" BorderStyle="Solid" BorderWidth="1px" O>
            <Columns>
                <asp:TemplateField HeaderText="數據1">
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:TextBox ID="txt_bndy" runat="server" CssClass="tboxSearch_x" Width="50" Height="20"
                            Text='<%#  Eval("BNDY").ToString() %>' />
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="數據2">
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:TextBox ID="txt_bndj" runat="server" CssClass="tboxSearch_x" Width="50" Height="20"
                            Text='<%# Eval("BNDJ").ToString()%>' />
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                </asp:TemplateField>
                <asp:TemplateField HeaderText="求和">
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemTemplate>
                        <asp:TextBox ID="txt_bnlj" runat="server" CssClass="tboxSearch_x" Width="50" Height="20"
                            Text='<%# Eval("BNLJ").ToString()%>' onBlur="setClf(this)" />
                    </ItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                    <ItemStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                </asp:TemplateField>
            </Columns>
            <FooterStyle BackColor="#CCCC99" />
            <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
            <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
            <AlternatingRowStyle BackColor="White" />
        </asp:GridView>
    </div>
    </form>
</body>
</html>

 後臺:瀏覽器

 protected void Page_Load(object sender, EventArgs e)
    {
        DataTable newdtb = new DataTable();
        newdtb.Columns.Add("BNDJ");
        newdtb.Columns.Add("BNDY");
        newdtb.Columns.Add("BNLJ");
      

        for (int i = 1; i < 11; i++)
        {
            DataRow newRow = newdtb.NewRow();
            //newRow["BNDJ"] = "pro" + i.ToString();
            //newRow["BNDY"] = 12.3m;
            newdtb.Rows.Add(newRow);
        }
        GridView1.DataSource = newdtb;
        GridView1.DataBind();
    }
相關文章
相關標籤/搜索