0

ASP.NET で作成された Web サイトから印刷する必要があり、DataViewGridJavaScript を使用してそれを行う必要があります。C# の方がはるかに簡単に実現できるようです。以下は、ドキュメントを試して印刷するために使用しているコードです。

<script type="text/javascript">
function doPrint() {
    var prtContent = document.getElementById('<%# dgvInvoices.ClientID %>');
    prtContent.border = 0;
    var WinPrint = window.open('', '', 'left=100,top=100,width=1000,height=1000,toolbar=0,scrollbars=1,status=0,resizable=1');
    WinPrint.document.write(prtContent.outerHTML);
    WinPrint.document.close();
    WinPrint.focus();
    WinPrint.print();
    WinPrint.close();
}

制御エラーが発生したため、3 行目を変更する必要('<%= dgvInvoices.ClientID %>');がありましたが、これによりドキュメントの印刷が停止していると考えられます。誰かがこれに対する回避策や修正を持っていますか? または、C# で印刷する簡単な方法はありますか?

元のエラーは次のとおりです。

コントロールにコード ブロック (つまり <% ... %>) が含まれているため、Controls コレクションを変更できません。

4

1 に答える 1

0

ASP.NET Ajax を使用していて、ページまたはマスター ページに ScriptManager がある場合は、次のことができます。

var prtContent = $get('<%= this.dgvInvoices.ClientID %>');

また、.Net Framework バージョン 4 以降を使用している場合はClientIDMode="Static"、コントロールでプロパティを設定できるため、ClientID は宣言どおりにレンダリングされ、宣言されたdocument.getElementByIdID をパラメーターとして渡す JavaScript 関数を使用できます。

于 2013-02-21T18:39:22.450 に答える