ciao,
questa è una pagina di esempio:
che chiama questo webservice (ovviamente referenziato dentro a visual studio con quel nome):
<%@ WebService Language="C#" Class="mioWebService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Collections.Generic;
using Entities;
using System.Threading;
using System.Linq;
using Managers;
[WebService(Namespace = "
http://tempuri.org/")]
public class mioWebService:
System.Web.Services.WebService
{
[WebMethod]
public List<Articolo> GetArticoli()
{
List<Articolo> articoli = new List<Articolo>();
for (int i = 0; i < 10; i++)
{
Articolo articolo = new Articolo();
articolo.Codice = "ART" + i;
articolo.Descrizione = "Descrizione " + i;
.....
articoli.Add(articolo);
}
return articoli;
}
}
come vedi, la classe tornata è qualcosa che puoi agganciare direttamente al GridView tramite la proprieta' "dataSource", e lui automaticamente ti genera le colonne che ti interessano.
Il fatto che si chiami "localhost.mioWebService" è dato dal fatto che aggiungendo il riferimento ho messo "localhost" come namespace, e poi ovviamente la classe è "mioWebService" perche' cosi' si chiama nel asmx.
Se vuoi puoi anche definirle tu a design time queste colonne:
...
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="false" >
<Columns>
<asp:BoundField DataField="codice" HeaderText="codice" />
<asp:BoundField DataField="descrizione"
HeaderText="descrizione" />
....
</Columns>
</asp:GridView>
oppure fartele generare da visual studio senza scrivere niente, aggiungendo un objectDataSource dalla finestra "DataSource" o dallo "smart-tag" che compare in alto a destra delle gridview, appena la trascini dalla toolbox alla webForm e dicendogli che la classe che ti dara' i dati sara' il webservice.
Fatto il wizard dovresti avere qualcosa di questo tipo nella pagina:
<asp:GridView ID="GridView1" runat="server"
DataSourceID="ObjectDataSource1" >
<Columns>
........
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetArticoli"
TypeName="localhost.mioWebService">
</asp:ObjectDataSource>
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo