我在这里有一个问题。在我继续之前,我将尝试解释我的问题,我有一个带有复选框的网格视图,文本框(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的帖子
答案 0 :(得分:0)
观察UpdateField函数的ChkId参数。您正在使用它作为chkID。它应该完全相同,区分大小写。