javascript - 使用 javascript 和 jquery 计算 gridview 单元格总数时出现错误

标签 javascript asp.net

我正在使用 java 脚本jquery 计算 GridView 单元格的总数。但是,我在编译时总是遇到这个错误。

The name 'total' does not exist in the current context

GridView 内部代码:

<asp:TemplateField HeaderText="Header 1">
    <ItemTemplate>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </ItemTemplate>            
    <FooterTemplate>
        <asp:Label ID="lblTotal" runat="server" Text="Total" Font-Bold="true">
        </asp:Label>
    </FooterTemplate>            
</asp:TemplateField>
<asp:TemplateField HeaderText="Header 2" >
    <ItemTemplate>
        <asp:TextBox ID="TextBox2" runat="server" class="calculate" 
           onchange="calculate()"></asp:TextBox>
    </ItemTemplate>            
    <FooterTemplate>
        <asp:TextBox ID="total" runat="server"></asp:TextBox>
    </FooterTemplate>  

javascriptjquery 代码:

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" 
  type="text/javascript">
  <script language="javascript" type="text/javascript">
    function calculate()
     {
        var txtTotal = 0.00;
        //var passed = false;
        //var id = 0;

        $(".calculate").each(function (index, value) {
            var val = value.value;
            val = val.replace(",", ".");
            txtTotal = MathRound(parseFloat(txtTotal) + parseFloat(val));
        });
        document.getElementById("<%=total.ClientID %>").value = txtTotal.toFixed(2);
    }

    function MathRound(number) {
        return Math.round(number * 100) / 100;
    }

</script>

我该如何解决这个问题,请帮忙。

最佳答案

您无法轻松访问 GridView 等模板化控件内的控件。创建一些变量来保存total.ClientID,以便jQuery可以抓取它。

在你的aspx中:

var totalClientID = TotalClientID;

在代码隐藏中:

void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
   if(e.Row.RowType == DataControlRowType.Footer)
   {
       TotalClientID = ((TextBox)e.Row.FindControl("total")).ClientID;
   }
}

关于javascript - 使用 javascript 和 jquery 计算 gridview 单元格总数时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6086993/

相关文章:

javascript - 为什么我的 Jasmine 单元测试不等待 'done' ?

c# - Telerik radwindow 位置

c# - 需要一个随机的 "hot or not"算法/解决方案

c# - 忽略单个页面的身份验证

c# - 如何在 asp.net 中停止页面加载时的数据绑定(bind)

javascript - 如何在 css 属性中使用加法/减法?

javascript - momentjs isBefore 返回错误结果

javascript - 为什么JSON数据插入不正确

javascript - 单击另一个关闭下拉菜单

c# - asp如何判断文本框是否为空