だからここに状況があります。フォームがrunat = serverになっていても、フォームrunat = serverエラーを出力するためにGridviewの内容をエクスポートする
私は、GridviewのコンテンツをExcelシートにエクスポートしています。基本的には、メソッドを呼び出すボタンがあります(例:btnExcel_Clicked)。後ろのC#コードボタン火災は、それがエラーを示す場合、そのような
protected void btnExcel_Click (object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition", "attachment; filename=" + "test" + "_Registration_Forms.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
Page.EnableViewState = false;
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
clientGridView.RenderControl(htmlWrite); //this is the name of my gridview
Response.Write(stringWrite.ToString());
Response.End();
}
通りである:
「System.Web.HttpException:タイプの制御 『clientGridView』 『はGridViewの』内部に配置する必要がありますrunat = serverを持つフォームタグ」を参照してください。
エラーが発生した場所を次のコードであることを示している:私のフォームは確かにその中にrunat =「server」を持っていない場合
Line 217: clientGridView.RenderControl(htmlWrite);
は、なぜこれがでしょうか?
私はこのページをどのように使用しているのかと思われますが、gridviewは更新パネルでラップされています(問題が発生するかどうかはわかりません)。ページ上部にいくつかのjavascriptがありますページが各検索クエリをリフレッシュできるようにします。それはそうのようになります。これは、基本的にはちょうど私の更新パネルの毎回の発射
<script type="text/javascript">
function RefreshUpdatePanel() {
__doPostBack('<%= txtClientName.ClientID %>', '');
$('#totals').fadeIn('slow');
$('#clientGrid').fadeIn('slow');
$('#btnReport').fadeIn('slow');
};
</script>
私はこれのどれかがこのようなエラーの原因になるかわからないtxtClientName
に値を入力します。もし誰かがこれについて少しの光を当てたり、正しい方向に私を導くことができたら、私は素晴らしいだろう。これは、私のgridviewが更新パネル内に配置されているためですか? arghhhh ..
ありがとうございます!
EDIT:ok最初の問題は解決しましたが、新しい問題が発生しました。後ろの私のコードにこのコードを配置することによって
は:
public override void VerifyRenderingInServerForm (System.Web.UI.Control control)
{
//confirms that an HtmlForm control is rendered for the
//specified ASP.NET server control at run time.
}
私はそのエラーを乗り越えることができ、しかし、新しいエラーが発生した:
System.InvalidOperationException: RegisterForEventValidation can only be called during Render();
フン。
編集2: よく問題が解決しました。 @ PageセクションにEnableEventValidation = "false"と入力すると、これは正しく機能します。しかし、これは今、安全ではないのですか?
編集3: また、Excelでセルの枠線を失うことなくこれを達成する方法がありますか?
私は(データセットにバインドされた)このことについてあまり精通していませんよ。私はsqldatasourceを取るグリッドビューを持っていて、それを使ってgridview内のセルにデータを設定します。どのような方法でもデータセットを作成する必要はありませんでした。この例を見ると、「dt」の起源についてはわかりません。私はcity.getAllCity()が作られているカスタムメソッドだと仮定しています。私はこれにもどのようにアプローチするかはわかりません。しかし、私はこのプロセスを学んでいないと思いますが、実際には何が起こっているのか分かりません。 – zillaofthegods
データセット生成の更新例# – Richard
優秀!あなたの指導に感謝します。 sqldatasourceをSqlDataAdapterに挿入できますか?ユーザーが入力した結果に基づいて多数のクエリを生成しています。その結果、静的なSQLクエリ/非クエリのみを使用することはできません。 – zillaofthegods