2016-09-21 10 views
0

タブのクリックイベントでGridViewをリロードする必要があります。これは、第二には...一度しかなく、作品htmlに新しいコンテンツを追加した後にアプリケーションがクラッシュする

<script> 
    function OnTabClickEvent(s, e) { 
     var tableUrl; 

     switch (e.tab.Index) { 
      case 0: 
       tableUrl = '@Url.Action("CGridViewPartial", "Competences")'; 
       break; 
      default: 
       tableUrl = '@Url.Action("TGridViewPartial", "Technologies")'; 
     } 

     $('#TabContent').empty(); 
     $('#TabContent').load(tableUrl); 
    } 
</script> 

<div> 
    @Html.DevExpress().TabControl(settings => 
    { 
     settings.Name = "CatalogTabControl"; 
     settings.Width = Unit.Percentage(100); 

     settings.Tabs.Add(tab => 
     { 
      tab.Name = "TabCompetences"; 
      tab.Text = Headers.Competences; 
     }); 
     settings.Tabs.Add(tab => 
     { 
      tab.Name = "TabProjects"; 
      tab.Text = Headers.ProjectsActivities; 
     }); 
     settings.Tabs.Add(tab => 
     { 
      tab.Name = "TabTechnologies"; 
      tab.Text = Headers.Technologies; 
     }); 

     //Events 
     settings.ClientSideEvents.TabClick = "OnTabClickEvent"; 
    }).GetHtml() 
</div> 
<div id="TabContent"> 
    @Html.Action("CGridViewPartial", "Competences") 
</div> 

クリックし、それはエラーでクラッシュ:私は次のコードを書いた

Uncaught TypeError: Cannot read property 'FindEventSourceParentByTestFunc' of undefined Page:74 Uncaught TypeError: ASPx.TCTClick is not a function

私が間違って何をしているのですか?私は本当に2番目と次のタブクリックでうまくいかない理由を理解できません。

+1

が、これはjavascriptのエラーまたは.NETのエラーですか? javascriptのように見えるが、ただ確実にしたい。そうであれば、おそらく関連するJavaScriptコードを投稿する必要があります。あなたのブラウザは、エラーが発生している行を教えてくれるはずです – ADyson

+0

これはデフォルトのスクリプトに含まれているJavaScriptのエラーです。面白いことに、このバグは、新しいコンテンツをページに追加する場合にのみ表示され、削除する場合には表示されません。 –

+0

"デフォルトスクリプト"正確にどのスクリプトですか?ブラウザにはデフォルトのスクリプトはなく、あなたまたはMVCフレームワークによって追加されたスクリプトのみがあります。それはエラーの場所を知るのに役立ちます。 – ADyson

答えて

0

これを試してみてください:

<script> 
    function OnTabClickEvent(s, e) { 
     var tableUrl; 

     switch (e.tab.Index) { 
      case 0: 
       tableUrl = CGridView.PerformCallback(); // where CGridView is the name of the grid view 
       break; 
      default: 
       tableUrl = TGridView.PerformCallback(); // where TGridView is the name of the grid view 
     } 

    } 
</script> 

ここでコールバックについて詳しく読む:https://documentation.devexpress.com/#AspNet/CustomDocument9052

関連する問題