下面一個例子:在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(); }