- - PR -
GridView を Excelへ出力すると 「Formタグの内側に・・・」といわれる
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-02-28 16:54
大変お世話になっております。
Visual Studio2005 VBにてWebアプリを作成しています。 データベースはSQLServer2000です。 以前こちらでご教授いただきました DataGridをエクセルへ出力(表示)する方法ですが、 環境をVS2005にバージョンアップしたところ、 なりまして問題が発生しております。 旧バージョンのVisual Studioでは下記ソースで表示することが可能でした。 DataGrid1.DataBind() Response.Clear() Response.Buffer = True Response.ContentType = "application/vnd.ms-excel" Response.Charset = "" Me.EnableViewState = False Dim tw As New System.IO.StringWriter() Dim hw As New System.Web.UI.HtmlTextWriter(tw) DataGrid1.RenderControl(hw) Response.Write(tw.ToString()) Response.End() このソースを、VS2005で動作させると(DataGridからGridViewへコントロールは変更しています)、 「'GridView' のコントロール 'GridView1' は、runat=server を含む form タグの内側に置かなければ成りません。」 といってきます。 Webデザインのソースを見ても </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 略> <Columns> ・ ・ ・ </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" 略"></asp:SqlDataSource> </div> </form> </body> そんな間違っているとは思えないのですが・・・ 何か仕様が変わったのでしょうか? ご存知の方ご教授よろしくお願いします。 |
|
投稿日時: 2006-03-01 08:00
エラーの回避策は2種類あります。
以下のサンプルを参考にしてください。 http://aspspider.net/AkioKasai/Goto.aspx?id=060217-1 http://aspspider.net/AkioKasai/Goto.aspx?id=060223-1 _________________ ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集 |
|
投稿日時: 2006-03-01 10:01
Accessさま、ご教授ありがとうございます。
参考にさせていただき、動作確認することができました! ありがとうございました! でも、Excel側での枠線が消えてしまうのは変わらないのですね・・・ |
|
投稿日時: 2006-03-08 14:12
お世話になっております。
Access様前回はありがとうございました。 しかし、VS2005より別のメッセージが表示されるようになり 困っております。どのたかご存知の方いらっしゃいましたらお願いします。 以前の確認では、ご教授いただきましたサイトから > Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) > ' このOverridesは以下のエラーを回避するために必要です。 > ' 「GridViewのコントロールGridView1は、runat=server を含む > ' form タグの内側に置かなければ成りません」 > End Sub を記述し、動作確認しました。 ちなみに、エクセルへ出力する処理はこのときも(今も)WebFormの Page_loadイベントに記述しています。よって、上記Overridesの記述も 同WebFormのaspx.vbファイルに記述しております。 今現在おきていることは、 「RegisterForEventValidation は Render(); の実行中にのみ呼び出されることができます。」 とVS2005のデバックモードでメッセージが表示されます。 ご教授いただきましたOverridesのモジュールを削除すると、一番最初に質問させて いただきましたメッセージが表示されます。 ということは、ご教授いただきました内容は効果があって別の問題が発生していると 考えられるのでしょうか・・・ ご教授よろしくお願いします。 |
1