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

下面一个例子:在gridview中第一列输入数值,第二列输入数值,点击第三列的时候进行计算 求和,如果不符合标记为红色字体。

如图:

代码 :

<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();
    }
时间: 2024-08-25 18:39:55

js获取gridview模板列中textbox行列的值的相关文章

如何在asp.net中获取GridView隐藏列的值?

在阅读本文之前,我获取gridview某行某列的值一般做法是这样的:row.Cells[3].Text.ToString().有点傻瓜呵呵 在Asp.net 2.0中增加了一个新的数据绑定控件:GridView,其目的用来取代Asp.net1.x中的DataGrid控件.获取GridView中的某列值的方法为   protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)    {        stri

JavaScript提高:004:JS获取Gridview单元格时层级问题

使用javascript获取页面中元素的属性,或者对元素进行操作.这种使用是非常多的.不过对于获取那些在页面中单一的元素,诸如,页面上的某个文本框,下拉列表,按钮等可以直接用ID获取到的这种元素,用法自然简单.这里就不多说了,太简单了.一般比较复杂的是,获取元素中的元素,比如动态生成的那些元素.这里就拿表格中的元素为例吧.知道如何获取表格中的单元格内的元素了,其他的复杂元素也就不在话下了.下面举个简单的例子,获取GridView的单元格元素.平常使用比较多的也就是这种的.行中有个操作按钮,然后对

js获取并设置&lt;p&gt;&lt;/p&gt;的显示的值。

原文链接:http://www.nowamagic.net/librarys/posts/jquery/23 html()方法 此方法类似于JavaScript中的innerHTML属性,可以用来读取或者设置某个元素中的HTML内容.要获取某个元素的内容,可以这样: 1 var p_html = $("p").html(); //获取p元素的HTML代码  如果需要设置某元素的HTML代码,那么也可以使用该方法,不过需要为它传递一个参数.例如要设置p元素的HTML代码,可以使用如下代码

.NET 获取Get方式URL中的参数键值

在Web开发中,我们常常会涉及到需要获取Get方式URL中的参数键值的情况,这里简单介绍三种方法: 第一种:常用的做法有使用JavaScript获取location.href后用正则表达式匹配获取此URL的所有键值对: 第二种:这里比如有个Key参数键,需要获取它对应的值:这时可以使用.NET里的Request.Form["Key"](针对Post)或Request.QueryString["Key"](针对Get),也可以用Request["Key&qu

WPF 中获取DataGrid 模板列中控件的对像

#region 当前选定行的TextBox获得焦点 /// <summary> /// 当前选定行的TextBox获得焦点 /// </summary> public void SelectedRowTBFocus() { if (SelectIndex != -1) { FrameworkElement item = grid.Columns[6].GetCellContent(grid.Items[SelectIndex]); DataGridTemplateColumn te

C#中在内容页获取其模板页中的变量,或者值

在CSDN的博文中看到了 muziduoxi 的文章:http://blog.csdn.net/muziduoxi/article/details/5386543 虽然里面提到的方法没有解决我的难题,但是我也是根据里面的方法想到现在所用的方法的,所以还是需要感谢  因为我要的变量初始化的时候是空的,如果使用muziduoxi的方法就只能读取到初始化时候的值,我做了个跟踪,发现有模板页的页面运行的时候是先运行本页的变量的定义→  到模板页的变量定义→ 到本页的Page_Load方法→ 到模板页的P

关于js获取元素在屏幕中的位置的方法

针对我们获取元素在页面中的位置的问题,我们还是用老师一峰老师的方法来解决吧 下面上HTML代码 <div class="left_footer"> <p data-num="1" ref="data" @mouseenter="mOver($event)" @mouseleave="mOut($event)">上</p> <p data-num="2&qu

GridView Footer模板列中给Dropdownlist赋值

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){    string FstWeekEnd,FstWeekEndday; if (e.Row.RowType == DataControlRowType.Footer)     {         DropDownList ddl = (DropDownList)e.Row.FindControl("new_date");      

使用JS获取HTML文档中的&lt;a&gt;标签的href值。

因为经常用到某个网站中的二维码信息,每次都需要手动打开网站,滑到对应的地方,点击一个链接才能打开图片,因此想着用一个脚本去获取这个信息.正好js可以很方便的操作HTML的DOM,所以写了一个简单的函数来试试手. 打开网页,打开浏览器的调试工具,获取对应的页面信息,发现其所在的节点后可以使用如下函数来获取href的值. js = document.getElementsByClassName("hover-text")[4].getElementsByTagName('a')[0].ge