Bonjour,
tout d'abord je tiens à préciser que j'ai trouvé des codes en C# et que j'ai réussi à en traduite la quasi totalité...
Après avoir tout transformé en vb.net
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 // // Code Behind // using System.Data.OleDb; using System.IO; public partial class Forms_WebImportExport : System.Web.UI.Page { public void fillGrid() { DataSet ds = new DataSet(); ds.ReadXml(Server.MapPath("../xmlTest.xml")); GridView1.DataSource = ds; GridView1.DataBind(); } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { fillGrid(); } } protected void btImport_Click(object sender, EventArgs e) { string conn = ("Provider=Microsoft.Jet.OLEDB.4.0;" + ("Data Source=C:\\path\\test.xls;" + "Extended Properties=\"Excel 8.0;\"")); // or use instead of Excel 8.0 - Excel 5.0 string SSQL = "SELECT name , dept, salary from [sheet1$]"; OleDbDataAdapter oleDA = new OleDbDataAdapter(SSQL, conn); // here use oleDataReader DataSet ds = new DataSet(); //oleDA.TableMappings.Add("Table","ExcelTest"); // Require oleDA.Fill(ds); GridView1.DataSource = ds.Tables[0].DefaultView; // or [ ds ] GridView1.DataBind(); } protected void btExport_Click(object sender, EventArgs e) { ExportGridToExcel(GridView1, "myExcel"); } public void ExportGridToExcel(GridView grdGridView, string fileName) { Response.Clear(); Response.AddHeader("content-disposition",string.Format("attachment;filename={0}.xls",fileName)); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; StringWriter stringWrite = new StringWriter(); HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); GridView1.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } public override void VerifyRenderingInServerForm(Control control) { /* method must be implemented when using RenderControl */ } }
j'obtiens le code ci-après
Le message d'erreur est le suivant : RegisterForEventValidation ne peut être appelé que pendant Render();
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
24
25
26
27 Imports System.IO.StringWriter Imports System.Web.UI.HtmlTextWriter Partial Class bonDeCommande Inherits System.Web.UI.Page Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Response.Clear() Response.AddHeader("content-disposition", "attachment;filename=FileName.xls") Response.Charset = "" Response.ContentType = "application/vnd.xls" Dim stringwrite As New System.IO.StringWriter() Dim htmlWrite As New HtmlTextWriter(stringwrite) GridView1.RenderControl(htmlWrite) Response.Write(stringwrite.ToString()) Response.End() End Sub Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) End Sub End Class
Il semble irrésolvable...
Merci pour vos réponses.
Cordialement,
Tid.
Partager