2009-02-19 5 views
2

Je crée une application de test simple afin que je puisse voir comment ASP.Net MVC fonctionne pour ce que nous traitons quotidiennement. Nous utilisons des contrôles tiers de Developer's Express, et nous continuerons à les utiliser. Si elles ne fonctionnent absolument pas dans ASP.Net MVC, nous n'utiliserons pas ASP.Net MVC. Cela dit, quelqu'un a trouvé un moyen de le faire fonctionner. Il a juste dû mettre du code dans le code derrière. Il a dû remplacer l'événement OnLoad et simplement mettre grid.DataSource = model et grid.DataBind() et cela fonctionne comme prévu.Alternative à l'utilisation de l'événement OnLoad dans une vue ASP.NET MVC?

Dans ASP.Net MVC RC, les fichiers de code derrière ont été supprimés. Je sais que je pourrais les remettre ... Cependant, puisque les gens disent généralement que le code derrière les fichiers est mauvais, comment pourriez-vous accomplir cela?

Répondre

13

La façon la plus simple sans créer un fichier codebehind est d'ajouter ce n'importe où sur votre page .aspx:

<script runat="server"> 
    private void Page_Load(object sender, System.EventArgs e) 
    { 
    //Initialize your control. 
    } 
</script> 
+0

C'est ce qu'il a fait. Je ne sais pas pourquoi je n'y ai pas pensé en premier lieu. – TheCodeMonk

+0

Merci. Je devais le faire exactement pour que mon Active Report génère et lie correctement mon contrôle WebViewer. re: http://stackoverflow.com/questions/668328/ –

0

I (me souviens I) ont vu quelque chose de similaire à juste faire directement dans la vue (.aspx):

<% 
    grid.DataSource = Model; 
    grid.DataBind(); 
%> 

travail pour les contrôles Telerik, et la solution proposée odeurs un peu comme cela alors peut-être que travaillera pour vous?

+0

J'ai essayé mais ça ne marche pas ... Je peux passer au travers et voir que le modèle contient les données et que la grille est correctement configurée, c'est juste dire qu'il n'y a pas de données à afficher. – TheCodeMonk

0

Tous les contrôles à l'aide ViewState ne fonctionnera pas dans ASP.NET MVC - la System.Web.UI.WebControls.GridView norme est l'un d'eux, mais je ne sais pas sur le contrôle grid dans la bibliothèque que vous utilisez. Sachez simplement que les contrôles qui nécessitent ViewState ne fonctionneront pas correctement, en raison des différences entre MVC et WebForms.


Précision: Si la fonctionnalité de Viewstate et PostBackGridView n'est pas utilisé, il sera de la fonction de cours dans un ASP.NET MVC View aussi bien. Cependant, il n'y a pas d'événement OnLoad à surcharger, puisque la page n'a pas le même cycle de vie, donc la solution déjà suggérée est probablement la meilleure si ce contrôle doit être utilisé.

<% 
    grid.DataSource = Model; 
    grid.DataBind(); 
%> 

Assurez-vous également d'avoir ceci en haut de votre page.

+0

L'exemple que j'ai mentionné dans ma question était ce même contrôle de grille. Il l'a fait fonctionner, mais il a dû remplacer l'événement OnLoad dans le code derrière. J'essaie de trouver un moyen de le faire sans créer de code derrière le fichier. Je peux désactiver la fonctionnalité viewstate et postback. – TheCodeMonk

+0

Vous devriez juste af

et puis ils * devraient * fonctionner ?! – veggerby

+0

Cela devrait bien sûr être ajouté pas par exemple :) – veggerby

0

Here is a video and downloadable sample project showing how to use the Developer Express controls within an MVC project. soutien de Developer Express pour MVC est censé venir. Pour le moment, vous devez contourner les problèmes liés à la gestion des événements et à la dépendance vis-à-vis de l'état de la vue. Mais ce que j'ai entendu récemment, c'est qu'ils ont l'intention de soutenir MVC.

+0

Oui, c'est la personne dont je parlais qui l'a eu à travailler. Il a dû utiliser le code derrière les fichiers, comme je l'ai expliqué. – TheCodeMonk

Questions connexes