未捕获的TypeError:undefined不是调用JavaScript函数的函数

时间:2015-01-02 15:42:35

标签: javascript c# asp.net listview

当我尝试调用我的Javacsript函数Uncaught TypeError: undefined is not a function时,我收到错误:displayValue()

Error message firing when function is called.

这是我的Javascript代码:

    var HoC = 0;
    var Rate = 0;

    function getHoursOrCubes(input, control)
    {
        HoC = input;
        var answer = HoC * Rate;
        displayValue(answer);
    }

    function getRate(input, control)
    {
        Rate = input;
        var answer = HoC * Rate;
        displayValue(answer);
    }

    function displayValue(finalValue) {
        var listViewRef = document.getElementById('LV_Tickets');
        var elementArray = listViewRef.getElementsByTagName('Label');
        alert('this worked.');

        for (var i = 0; i < elementArray.length; i++) {
            var elementRef = elementArray[i];

            elementRef.value = finalValue;
            alert(elementRef.value);
        }
    }

我认为引发错误的行是var elementArray = listViewRef.getElementsByTagName('Label');

我在listview中有一个listview,我想在嵌套的listview中设置一个标签的值。这就是我想在这里做的事情。

这是我尝试访问的ListView的asp代码:

<asp:ListView ID="LV_Tickets" runat="server" DataSourceID="SQL_Tickets"  InsertItemPosition="FirstItem" OnPreRender="LV_Tickets_PreRender" DataKeyNames="TicketNum">

在嵌套的ListView的insertitem模板中调用getHoursOrCubes()函数:

<asp:TextBox ID="HoursOrCubesTextBox" runat="server" style="height: 20px; width: 165px;" Text='<%# Bind("HoursOrCubes") %>' onchange="getHoursOrCubes(this.value)" />

1 个答案:

答案 0 :(得分:0)

你试图调用一个不存在的函数。

函数getElementsByName返回IHTMLElementCollection。使用该对象的tags方法获取所需内容。没有getElementsByTagName的方法可以在IHTMLElementCollection上运行。

而不是

var elementArray = listViewRef.getElementsByTagName('Label');

var elementArray = listViewRef.tags('Label');

那应该适合你。