Bonjour à tous,
J'ai un exemple de page aspx qui affiche un gridView et sur chaque ligne du gridView, il y a un lien pour ouvrir un detailView.
Le tout fonctionne avec de l'ajax : asp:UpdatePanel et ajaxToolKit:ModalPopupExtender (pour afficher le detailView en mode modal).
L'exemple marche très bien avec un fichier Xml contenant les données mais il plante quand j'essaye de le faire marcher avec des données provenant d'une base Oracle.
L'erreur est la suivante : je n'arrive pas à retourner un objet "IEnumerable<EssaiRef>" dans la méthode :
J'ai le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 [DataObjectMethod(DataObjectMethodType.Select)] public IEnumerable<EssaiRef> FindByID(string Essai_ID) { OracleConnection conn = new OracleConnection(); conn.ConnectionString = "Data Source=Test.World;User Id=test1;Password=test1;"; conn.Open(); string sql = "Select * from essai_ref where Essai_ID =" + Essai_ID; OracleCommand cmd = new OracleCommand(sql, conn); OracleDataAdapter dataAdapter = new OracleDataAdapter(cmd); DataSet oracleDataSet = new DataSet(); dataAdapter.Fill(oracleDataSet); DataTable dataTableTmp = oracleDataSet.Tables[0]; conn.Close(); conn = null; return (IEnumerable<EssaiRef>) dataTableTmp.AsEnumerable).ToList();J'ai essayé plusieurs conversions vers IEnumerable<EssaiRef> mais rien n'y faitSys.WebForms.PageRequestManagerServerErrorException : Exception has been thrown by the target of an invocation.
Tandis que le code suivant marche (avec le fichier Xml) :
La méthode FindByID est utilisée dans la page aspx dans un objet ObjectDataSource qui nourrit le detailView :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 [DataObjectMethod(DataObjectMethodType.Select)] public IEnumerable<Customer> FindByID(string id) { // find the customer return (from c in this.Customers where c.ID == id select c).ToList(); }
Auriez-vous une idée ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <asp:ObjectDataSource ID="odsEssaiRefDetail" runat="server" TypeName="getOracleData" DataObjectTypeName="EssaiRef" OnSelecting="OdsCustomerDetail_Selecting" SelectMethod="FindByID" UpdateMethod="Update"> <SelectParameters> <asp:Parameter Name="Essai_ID" Type="Int32" /> </SelectParameters>
Merci beaucoup par avance.
Laurent.
Partager