23 messaggi dal 06 marzo 2008
Salve, vorrei stampare il contenuto di una listview, facendo un Report con Crystal report o con PrintDocument, ma non so come associare al report il risultato della query Linq che associo alla proprietà DataSource di una listview (che contiene un'altra listview per le righe di dettaglio).
Il codice che uso è il seguente:


if (!IsPostBack)
{
int idSel = int.Parse(Request.QueryString["id"].ToString());
int idQuest = int.Parse(Request.QueryString["qu"].ToString());

using (QuestionarioDataContext qdx = new QuestionarioDataContext())
{
var qSel = from s in qdx.Selezionati
where s.id_Selezionato == idSel
select s;
Selezionati selezionati = qSel.First();
var quest = from q in qdx.Questionario
where q.id_Questionario == idQuest
select q;
Questionario questionario = quest.First();
var dom = from cmp in qdx.Composizione
where cmp.id_Questionario == questionario.id_Questionario
select new {cmp.Domande.id_Domanda, cmp.Domande.Domanda,cmp.Domande.Risposte};
ListView1.DataSource = dom;
ListView1.DataBind();


}
}
luigi.marano wrote:
Salve, vorrei stampare il contenuto di una listview, facendo un Report con Crystal report o con PrintDocument, ma non so come associare al report il risultato della query Linq che associo alla proprietà DataSource di una listview (che contiene un'altra listview per le righe di dettaglio).

dubito che si possa fare. in genere, questi oggetti per le stampe accettano direttamente la sorgente dati, ma dipende da come il componente è stato pensato. di sicuro, nella relativa doc troverai spunti.
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
23 messaggi dal 06 marzo 2008
Alla fine ho risolto in questo modo anche se non è una stampa elegante (Crystal Report mi ha fatto impazzire) funziona.........
Grazie Ciao a tutti.
string Utente = Session["Utente"].ToString();
try
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename="+Utente+".txt");
Response.Charset = "";
Response.ContentType = "application/vnd.txt";

System.IO.StringWriter stringWrite = new System.IO.StringWriter();

HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

htmlWrite.WriteLine(" Questionario {3} composto da {2} domande svolto da {0} della classe {1} \r\n",
Utente,ViewState["classe"].ToString(),ViewState["nDomande"].ToString(),ViewState["nomeQuest"].ToString());
int i=1;
foreach (ListViewDataItem lsw in ListView1.Items)
{
Label dmd = (Label)lsw.FindControl("DomandaLabel");
htmlWrite.WriteLine("\r\n ---------------------------------------------------------\r\n");
htmlWrite.WriteLine(" Domanda n. "+i.ToString());
htmlWrite.WriteLine(dmd.Text);
i++;
htmlWrite.WriteLine(" ---------------------------------------------------------\r\n");
//stringWrite.WriteLine
ListView lsub = (ListView)lsw.FindControl("subMenu");
if (lsub != null)
foreach (ListViewDataItem lsubItem in lsub.Items)
{
Label chw=(Label)lsubItem.FindControl("LblRispData");
htmlWrite.WriteLine(chw.Text);
Label idrisp = (Label)lsubItem.FindControl("idRisp");

}
}
Response.Write(stringWrite.ToString());
Response.End();
}
catch
{

}

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.