1

此处强调文本我使用 jquery 和 java 脚本对转发器控件中的 asp 文本框值求和,并在结果 asp 标签中显示结果。我想知道如何在 jquery 的 asp 标签中设置值。在这里我得到了错误名称'lblTotal'在当前上下文中不存在......

if (objIndex == 0) {
                    objData = new Array();
                }
                objData[objIndex] = txtBoxValue;
                alert(secName);
                totamt = 120000;
                var Tot = 0;
                for (var i = 0; i < objData.length; i++) {
                    Tot = parseInt(Tot) + parseInt(objData[i]);
                }

                if (parseInt(Tot) > parseInt(totamt)) {
                        var a = $("#<%= lblTotal.ClientID%>").val('totamt');
                    alert(a);

                }
                else if (parseInt(Tot) <= parseInt(totamt)) {
                var b = $("#<%= lblTotal.ClientID%>").val('Tot');
                    alert(b);
                }
4

2 回答 2

0

如果您想使用客户端(JQuery 代码)执行此操作,您应该为您的标签提供一个类,您可以使用它来轻松选择它们。例如,来自您的转发器模板:

<ItemTemplate>
    ...
    <asp:Label runat='server' Text='' CssClass='class1 class2 totalable' />
    ...
</ItemTemplate>

然后在您的客户端代码中,转发器呈现后,您可以遍历所有具有totalable该类的标签并进行添加。

因此,在您想要合计这些值时:

var total = 0;


$('.totalable').each(function () {
    //alert($(this).html());
    total+=  parseInt($(this).html());
    ....
});

alert('Total = ' + total);
于 2012-07-26T08:26:02.203 回答
0

label在里面Repeater所以它不直接可见因此你不能使用

<%= lblTotal.ClientID%>

你应该找到这样的控制

    var controls = yourParentControl.getElementsByTagName("SPAN");
//this will give you array of controls after that you should iterate in that 
//collection and find out the label you want to set total to.

SPAN 因为labels呈现为SPANs

于 2012-07-26T07:04:31.137 回答