1

私の Web アプリは ASP.net MVC3 に基づいており、jqGrid を使用しています。jqGrid から必要なファイル アップロード機能をサポートすることにこだわっています。

Web アプリの使用フローにより、ユーザーはシステム上のファイルを選択し、jqGrid の追加/編集フォームからデータベース レコードにアップロードできます。ファイル アップロード用の jqGrid colModel には、編集タイプが として設定されていedittype:'file'ます。追加/編集フォームで、「参照...」ボタンを表示して画像を選択できます。jqGrid のドキュメントでは、ファイルのアップロードに Ajax ファイル アップロード プラグインを使用することが提案されています。この名前のプラグインが 2 つ見つかり、両方を試しました。

  1. PHPLetterの Ajax ファイル アップロード プラグイン: このプラグインは jqGrid で動作しますが、古いバージョンの jQuery を使用している場合のみです。jQuery 1.5 以降、ファイル アップロード プラグインでドキュメント化されていない HandleError API が使用されているため、この機能は壊れています。

  2. Valumsの Ajax ファイル アップロード プラグイン。jqGrid の外部からこのプラグインを正常に使用できました。ファイルのアップロード (グリッド外) に使用するスクリプトは次のとおりです。

    var uploader = new qq.FileUploader({
           element: fileUploader,
           action: @Url.Action("UploadProductImage"), 
           allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'], )};
    

ただし、このプラグインを jqgrid Add/Edit フォームに統合する方法はまだわかりません。アップロード スクリプトを初期化して呼び出すにはどうすればよいですか??

私のアプリは IE 7 および 8 で動作する必要があるため、Flash/HTML5 ベースのファイル アップロード ソリューション (Uploadify など) を使用できません。

ありがとう、

ロバート

4

1 に答える 1

0

私のために働いた解決策は、私自身の非常に短いHandleError関数を書き、jqgridで説明されているようにAjaxファイルアップロードプラグインを使用することでした-追加/編集ダイアログでファイルをアップロードします。したがって、私はそのソリューションを使用しますが、次の関数を追加します。

jQuery.extend({
    handleError: function( s, xhr, status, e ) {
        // If a local callback was specified, fire it
        if ( s.error )
            s.error( xhr, status, e );
        // If we have some XML response text (e.g. from an AJAX call) then log it in the console
        else if(xhr.responseText)
            console.log(xhr.responseText);
    }    
});

私はここで関数を見つけました:http://www.johnmain.co.uk/blog/2012/06/14/jquery-handleerror-is-not-a-function-issues/

もう1つ注意してください:行を変更する必要がありました

dataType: 'json',

dataType: 'JSON',

jqgridからコードを取得するには、Firefoxで動作する追加/編集ダイアログでファイルをアップロードします(他のブラウザーでは、これは問題にはなりません)。

于 2012-08-14T15:37:24.933 に答える