使用Javascript在Gridview中求和

时间:2013-12-25 15:53:44

标签: c# javascript gridview

我在这里有一个问题。在我继续之前,我将尝试解释我的问题,我有一个带有复选框的网格视图,文本框(Marks1),文本框(Marks2)和一个标签,以显示总和Marks1和Marks 2。

如果我更新了选中其复选框的特定标记1和标记2,则应立即更改或更新总和。

这是Java Script页面:

<script type="text/javascript">
        function SelectChange(ChkId, txt1, txt2, total) {
            var chk = document.getElementById(ChkId);
            UpdateField(ChkId, txt1, txt2,total)

        }

        function UpdateField(ChkId, txt1, txt2, total) {
            if (document.getElementById(chkID).checked == true) {
                var txtval1 = document.getElementById(txt1).value != "" ? document.getElementById(txt1).value : "0";
                var txtval2 = document.getElementById(txt2).value != "" ? document.getElementById(txt2).value : "0";
                var total1 = parseInt(txtval1) + parseInt(txtval2);
                document.getElementById(total).innerHTML = total1;
                if (document.getElementById(txt1).value == "" && document.getElementById(txt2).value == "") {
                    document.getElementById(total).innerHTML = "";
                    document.getElementById(txt1).disabled = false;
                    document.getElementById(txt2).disabled = false;
                }


            } else {
                document.getElementById(txt1).disabled = true;
                document.getElementById(txt2).disabled = true;

            }
        }

    </script>

我使用行数据绑定事件来设置复选框和文本框的属性..像这样:

protected void Gdview_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TextBox txt1 =(TextBox) e.Row.FindControl("Txtmark1");
                TextBox txt2 = (TextBox)e.Row.FindControl("Txtmark2");
                Label lb1 = (Label)e.Row.FindControl("lbTotal");
                CheckBox chk = (CheckBox)e.Row.FindControl("Checker");

                chk.Attributes["onclick"] = "javascript:return SelectChange('" + chk.ClientID + "','" + txt1.ClientID + "','" + txt2.ClientID + "','" + lb1.ClientID + "')";
                txt1.Attributes["onKeyup"] = "javascript:return UpdateField('" + chk.ClientID + "','" + txt1.ClientID + "','" + txt2.ClientID + "','" + lb1.ClientID + "')";
                txt2.Attributes["onKeyup"] = "javascript:return UpdateField('" + chk.ClientID + "','" + txt1.ClientID + "','" + txt2.ClientID + "','" + lb1.ClientID + "')";


            }
        }

它不起作用..我不明白为什么?这不是向复选框,文本框添加属性的正确方法吗?或者我是否必须更改Sum of Label的帖子

1 个答案:

答案 0 :(得分:0)

观察UpdateField函数的ChkId参数。您正在使用它作为chkID。它应该完全相同,区分大小写。