2014-11-01 53 views
0

我使用的剑道Tabstrips,我faceing问题与加载标签行动在剑道标签栏被调用的两倍,而加载第一次

Html.Kendo().TabStrip().Name("TabStrip") 
      //.Animation(e=> e.Open(open => open.Fade(FadeDirection.In))) 
      //.Events(e => e.Select("OnSelect") 
      //.ContentLoad("ContentTabStripLoad") 
      //.Activate("Tabstrip_select") 
      //) 

      .Items(parent => 
      { 
       parent.Add().Text("Sales").Selected(true) 
        .LoadContentFrom("_SalesItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID }); 
       if (Model.EnableMixes == true) 
       { 
        parent.Add() 
         .Text("Sales of structural mixes") 
         //.Enabled(@Model.EnableMixes) 
         .LoadContentFrom("_SalesOfMixesItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID }); 
        //.Selected(@Model.TabNameToSelect == "Sales of structural mixes" ? true : false); 
       } 

       parent.Add() 
        .Text("Customer/market costs") 
        .Enabled(@Model.EnableCommercialCosts) 
        .LoadContentFrom("_CustomerCosts", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID }); 
       //.Selected(@Model.TabNameToSelect == "Customer/market costs" ? true : false); 

       if (Model.EnableMixes == true) 
       { 
        parent.Add() 
         .Text("Product mixes") 
         .Enabled(@Model.EnableMixes) 
         .LoadContentFrom("_ProductMixProducts", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID }); 
        //.Selected(@Model.TabNameToSelect == "Product mixes" ? true : false); 
       } 

       if (Model.EnableCustomDriverItems == true) 
       { 
        parent.Add() 
         .Text("Custom driver items") 
         .Enabled(@Model.EnableCustomDriverItems) 
         .LoadContentFrom("_CustomDriverItems", "DataTile", new { isEditingState = @Model.IsEditingState, dataSetID = @Model.DataSet.ID }); 
        //.Selected(@Model.TabNameToSelect == "Custom driver items" ? true : false); 
       } 
      }) 
     .Render(); 

我已经使用选择选项来选择默认选项卡及其工作罚款,然后如果我点击其他选项卡然后底层的动作被解雇两次我无法阻止它,我不知道为什么被称为两次。我已经写了下面的几行来阻止它第二次射击但没用。在点击选项卡时,正在调用相应的动作,然后我将调试器打到下面的代码中,并再次调用动作。

tabStrip.tabGroup.on('click', 'li', function (e) { 
      debugger; 
      return false; 
     }); 

是否有此

回答

1

任何解决办法我有这种情况发生前,这是因为我在这是处理某些标签的点击函数创建整个标签栏的其他副本。每次点击处理程序运行时,都会创建一个新副本,该副本将对应于第一次单击任何卸载选项卡时调用该操作的次数。

哎呀,不好的代码:

var tabStrip = $('#tabstripTemplate').kendoTabStrip().data("kendoTabStrip"); 

固定,只得到参考现有的标签栏:

var tabStrip = $('#tabstripTemplate').data("kendoTabStrip");