0x800a138f - JavaScript运行时错误:属性''的值为null或未定义,而不是Function对象

时间:2015-04-23 23:20:13

标签: javascript jquery kendo-ui kendo-grid kendo-asp.net-mvc

1>我有kendo网格,其中一个列有一个按钮。我已经为按钮的onclick事件分配了javascript函数。 javascript进行ajax调用。但是当我点击按钮时出现错误

0x800a138f - JavaScript运行时错误:属性' DoSomething'是null或undefined,不是Function对象

我尝试设置onclick到" javascript:DoSomething();"没有运气

2 - ;我还想通过" BatchKey"如果可能,给函数赋值

<div>
    @(Html.Kendo().Grid< BatchDetail>()
    .Name("grid")
    .Columns(col =>
    {
        col.Bound(p => p.BatchKey);
        col.Bound(p => p.OriginalCost);
        col.Bound(p => p.Status);
        col.Bound(p => p.LastFileName);
        col.Bound(p => p.FileID).ClientTemplate(
            "# if (Status == \"Error\") { #" +
            "<button id=\"btnResolve\" class=\"resolve-button\" onclick=\"DoSomething();\">Resolve</button>" +
            "#}#"
            ).Title("Action");
    })
    .AutoBind(true)
    .Pageable()
    .Sortable()
    .DataSource(dataSource => dataSource
        .Ajax()
        .PageSize(20)
        .Read(read => read
            .Action("GetData", "Detail", new { ID = Model.ID })))
    )
</div>
function DoSomething()
{   
    $.ajax({
        url: "www.msn.com",
        success: function (result)
        {
            $("#div1").html(result);
        }
    })
}

1 个答案:

答案 0 :(得分:0)

按钮ID必须是唯一的,因此您不能像这样使用它。您可以像这样传递BatchKey:

 col.Bound(p => p.FileID).ClientTemplate(
     "# if (Status == \"Error\") { #" +
         "<button class=\"resolve-button\" onclick=\"DoSomething(this, '#= BatchKey #');\">Resolve</button>" +
      "#}#"
            ).Title("Action");

function DoSomething(button, batchKey)
{   
    $.ajax({
        url: "www.msn.com",
        success: function (result)
        {
            $("#div1").html(result);
        }
    })
}

我已经在我自己的网格上测试了它,它运行正常。如果它仍然不起作用,那么除了您发布的内容之外,代码存在问题。