在javascript中访问gridview的页脚模板中的标签

时间:2010-10-22 14:58:00

标签: c# javascript asp.net

我在gridviewcolumn的footertemplate中有一个标签。我想在javascript中将此标签中的计算值(行值的总和)放入。我可以访问我的Itemtemplates中的所有文本框,但我不知道如何在我的foortertemplates中找到我的标签。

.aspx:gridview中的列

  <asp:TemplateField HeaderText="Prijs excl. BTW">
  <ItemTemplate>
    <asp:TextBox ID="txtBTWTarief" Width="60px" runat="server" Text='<%# Eval("exclBTW") %>'   />
  </ItemTemplate>
  <FooterTemplate>
    <asp:Label ID="lblTotexclBTW" runat="server" Text="0" Width="60px"></asp:Label>
  </FooterTemplate>
  </asp:TemplateField>

.aspx.cs:附加到我的文本框和ddl

的eventhandlers
protected void gridviewDiversen_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        string evtHandler;
        int rowIndex = Convert.ToInt32(e.Row.DataItemIndex) + 1;
        evtHandler = "updateValue(" + gridviewDiversen.ClientID + "," + rowIndex + ")";
        ((TextBox)e.Row.FindControl("txtBTWTarief")).Attributes.Add("onblur", evtHandler);
        ((TextBox)e.Row.FindControl("txtKorting")).Attributes.Add("onblur", evtHandler);
        ((DropDownList)e.Row.FindControl("ddlBTW")).Attributes.Add("onchange", evtHandler);
    }
}

javascript:eventhandlers in action

    function updateValue(theGrid, rowIdx)
    {
        var ddl, t1, t2, l1, l2, l3, l4, k1; 
        ddl = document.getElementById(theGrid.rows[rowIdx].cells[2].children[0].id);
        t1 = document.getElementById(theGrid.rows[rowIdx].cells[3].children[0].id); 
        //calculations...
    }

在这个脚本中,我在Itemtemplate中找到了我的文本框,但我不知道如何在页脚模板中找到我的标签。有人有想法吗? THX

1 个答案:

答案 0 :(得分:0)

如果您在JS中进行计算并需要使用客户端查找标签,则可以使用jQuery:

$('.yourLabelClass').html('Updated results');

或只是JS:

var labels = document.getElementsByTagName("span");
for (var i=0; i < labels[i]; i++) {
    if (labels[i].className && labels[i].className == 'yourLabelClass')
        labels[i].innerHTML = 'Updated results';
}