2016-09-21 5 views
0

Ich muss GridView auf der Registerkarte Click-Ereignis neu laden. Ich schrieb den nächsten Code:App stürzt nach dem Hinzufügen eines neuen Inhalts zu 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> 

Es funktioniert aber nur einmal ... Auf der zweiten klicken, um es mit Fehlern stürzt:

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

Was mache ich falsch? Ich kann wirklich nicht verstehen, warum es bei den zweiten und nächsten Tab-Klicks nicht funktioniert.

+1

ist dies ein Javascript-Fehler oder ein .NET-Fehler? Sieht aus wie Javascript, wollte aber nur sicher sein. Wenn dies der Fall ist, müssen Sie wahrscheinlich den zugehörigen JavaScript-Code posten. Ihr Browser sollte in der Lage sein, Ihnen die Zeile zu nennen, in der der Fehler auftritt – ADyson

+0

Dies ist ein Fehler in JavaScript, das in Standardskripten enthalten ist. Und das ist interessant, dieser Bug erscheint nur, wenn ich der Seite einen neuen Inhalt hinzufüge, nicht beim Entfernen. –

+0

"Standardskripts". Welche Skripte genau? In einem Browser gibt es keine Standardskripts, nur die von Ihnen oder vom MVC-Framework hinzugefügten. Es würde helfen, den Ort des Fehlers zu kennen. – ADyson

Antwort

0

Try this:

<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> 

Lesen Sie mehr über Rückrufe hier: https://documentation.devexpress.com/#AspNet/CustomDocument9052

Verwandte Themen