从Kendo网格(MVC)中的ClientTemplate将列值传递给JS函数

时间:2016-03-22 14:34:02

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

我正在尝试传递列值。但它没有用,总是说“TrackingID”是未定义的。我花了很多时间尝试差异格式,但我觉得我错过了一些小事。当我尝试在列中打印TrackingID的值时,它工作正常。但是当我尝试将此值传递给函数时,它会给出错误,说“TrackingID未定义”。 下面的列是子网格的一部分,它存在于剑道模板中,如下所示: -

     <script id="tplHistory" type="text/kendo-tmpl">
            @(Html.Kendo().Grid<TrackingViewModel>()
                .Name("HistoryGrid_#=PartnerGroupID#")
                .Columns(columns =>
                {                
                    columns.Bound(v => v.PriceHigh).Title("Monthly High").Format("{0:c}").Width("12%");
                    columns.Bound(v => v.DateUpdated).Title("Edited Date").Format("{0:MM/dd/yyyy}").Width("10%");
                    columns.Bound(v => v.UpdatedBy).Title("Edited By").Width("10%");
                    columns.Bound(v => v.OperationName).Title("Status").Width("10%");
                    columns.Bound(v => v.TrackingID).HeaderTemplate(" ").ClientTemplate("#= revertTemplate(TrackingID) #");
})

请帮忙。

columns.Bound(v => v.TrackingID).HeaderTemplate(" ").ClientTemplate("#= revertTemplate(TrackingID)#");


function revertTemplate(tid) {
    console.log(tid);
    var markup = kendo.format("<i title='Revert the record' class='fa fa-floppy-o fontIcon' onclick=revertData({0})></i>", tid);
    return markup;
}

function revertData(trackingid) {
    alert(trackingid);
}

3 个答案:

答案 0 :(得分:0)

试试这个:

columns.Bound(v => v.TrackingID).HeaderTemplate(" ").ClientTemplate("<a onclick=\"revertTemplate('#=TrackingID#')\">#=TrackingID#</a>");

答案 1 :(得分:0)

尝试更新您的方法,如下所示(传递数据并使用data.PropertyName而不是仅使用PropertyName):

columns.Bound(v => v.TrackingID)
    .HeaderTemplate(" ")
    .ClientTemplate("#= revertTemplate(data)#");


function revertTemplate(data) {
    console.log(data.TrackingID);
    var markup = kendo.format("<i title='Revert the record' class='fa fa-floppy-o fontIcon' onclick=revertData({0})></i>", tid);
    return markup;
}

function revertData(data) {
    alert(data.TrackingID);
}

有关详细信息,请查看How Do I Have Conditional Logic in a Column Client Template? 希望这会有所帮助...

答案 2 :(得分:-2)

最后我找到了解决方案: -

Alma* Andor;

 if(b00lvar){
    Andor = new Birs();
    std::cout<<Andor->Getwidth()<<" "<<Andor->Getheight()<<std::endl;
  }else{
    Andor = new Citrom();  
    std::cout<<Andor->Getwidth()<<" "<<Andor->Getdepth()<<std::endl;
  }