Problème databind sur detailsview à partir de objectdatasource

mitchairben Messages postés 7 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 14 novembre 2008 - 28 juil. 2008 à 10:23
mitchairben Messages postés 7 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 14 novembre 2008 - 28 juil. 2008 à 13:02
Bonjour les juilletistes !
Merci d'avance ! :-)
J'ai une classe qui implémente une interface. Une des méthodes de cette classe me ramène un objet en fonction d'un paramètre.
Je veux afficher cet object dans un détailview.
Jusque là, tout paraît zen ...
Voilà mon détail view



<
asp
:
DetailsView
ID
="dvParcelle"
runat
="server"
AutoGenerateRows
="False">

<
Fields
>

<
asp
:
BoundField
DataField
="Dnupla"
HeaderText
="Dnupla"
SortExpression
="Dnupla"
/>

<
asp
:
BoundField
DataField
="Surface"
HeaderText
="Surface"
SortExpression
="Surface"
/>

<
asp
:
BoundField
DataField
="Id"
HeaderText
="Id"
SortExpression
="Id"
/>

<
asp
:
BoundField
DataField
="Dnupro"
HeaderText
="Dnupro"
SortExpression
="Dnupro"
/>

<
asp
:
BoundField
DataField
="Name"
HeaderText
="Name"
SortExpression
="Name"
/>

<
asp
:
BoundField
DataField
="Comments"
HeaderText
="Comments"
SortExpression
="Comments"
/>

</
Fields
>

</
asp
:
DetailsView
>

et voilà mon bout de code





Dim ods As ObjectDataSource = New ObjectDataSource
ods.TypeName = "MAJIC.Business.Implementation.CadastralInformationImplementation"
ods.SelectMethod = "GetParcelById"
ods.SelectParameters.Add(New Parameter("Id", TypeCode.Int32, tbParcelle.Text))
dvParcelle.DataSource = ods
dvParcelle.DataBind()

tbParcelle est un textbox où je saisis l'Id.

Le système me dit à l'exécution :



Aucun constructeur sans paramètre défini pour cet objet.


J'ai donc ajouté des constructeurs par défaur partout ! et ça continue à coincer ?
Je ne comprends plus rien :-) HELP ME !!!

4 réponses

ofonadroite Messages postés 130 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 13 août 2008 2
28 juil. 2008 à 11:04
Salut,

Le fait que quand tu spécifie le paramètre qui doit être en Int32 tu donnes un String joue peut être. Essaye ça (c'est du c# mais ça doit se traduire facilement en VB) : 
Int32

id;

Int32.TryParse(tbParcelle.Text,
out id);

Et ensuite remplace ton tbParcelle.Text par id.
Bon courage.
@Pluche

<hr />
Si une réponse vous convient n'oubliez pas le réponse acceptée !!!
Ca aidera beaucoup d'autres personnes
0
mitchairben Messages postés 7 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 14 novembre 2008
28 juil. 2008 à 11:11
Merci et désolé
J'ai essayé et même résultat !
D'ailleurs ça marchait sans le tryparse mais c'est vrai que c'est mieux avec !
Michel
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
28 juil. 2008 à 11:46
Salut,
Pour info, tu peux directement mettre ce code dans ta page:

<asp:ObjectDataSource
ID="MyObjDataSource"
runat="server"
SelectMethod="GetXXX"
TypeName="XXX.YYYY.ZZZ">
   <SelectParameters>
      <asp:Parameter
Name="..."
Type="..."
/>
   </SelectParameters>
</asp:ObjectDataSource>

Sinon est-ce que GetParcelById prend bien un int en paramètre et retourne une collection?

<hr />
-My Blog-
0
mitchairben Messages postés 7 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 14 novembre 2008
28 juil. 2008 à 13:02
Bonne question !
Dans la mesure où la parcelle est recherchée par son Id, la méthode renvoit un objet de type Parcel.
Je vais essayer de renvoyer une collection avec un élément, juste pour voir :-)
Merci !
0
Rejoignez-nous