2015年5月13日 星期三

利用 jquery 避免重複 submit

(function ($) {
// jQuery plugin to prevent double submission of forms
$.fn.preventDoubleSubmission = function () {
    $(this).on('submit', function (e) {
        var $form = $(this);

        if ($form.data('submitted') === true) {
            // Previously submitted - don't submit again
            e.preventDefault();
        } else {
            // Mark it so that the next submit can be ignored
            $form.data('submitted', true);
        }
    });

    // Keep chainability
    return this;
};
})(jQuery);

$("form").preventDoubleSubmission();

2015年5月12日 星期二

tiff 兩頁切割法 (適用任何需要合併的寫法)

var fd = new FrameDimension(image.FrameDimensionsList[0]);
for (int i = 2; i < image.GetFrameCount(fd); i+=2)
{
                        using (MemoryStream oMemoryStream = new MemoryStream())
                        using (MemoryStream oMemoryStream2 = new MemoryStream())
                        {
                            image.SelectActiveFrame(fd, i);
                            image.Save(oMemoryStream, ImageFormat.Tiff);
                            System.Drawing.Image tiff = System.Drawing.Image.FromStream(oMemoryStream);
                            Encoder encoder = Encoder.SaveFlag;
                            ImageCodecInfo encoderInfo = ImageCodecInfo.GetImageEncoders().First(a => a.MimeType == "image/tiff");
                            EncoderParameters encoderParameters = new EncoderParameters(1);
                            encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);
                            tiff.Save(oMemoryStream2, encoderInfo, encoderParameters);
                            encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);
                            image.SelectActiveFrame(fd, i+1);
                            image.Save(oMemoryStream, ImageFormat.Tiff);
                            System.Drawing.Image tiff2 = System.Drawing.Image.FromStream(oMemoryStream);
                            tiff.SaveAdd(tiff2, encoderParameters);
                            encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
                            tiff.SaveAdd(encoderParameters);  // 此時 oMemoryStream2 即為合併的圖檔
                        }
}

Entity Framework 建立新物件並儲存後馬上取得關聯資料

使用 CreateProxy 建立物件,不要直接 new var newmodel = _contextXXX.CreateProxy<yyy>(); ... _contextXXX.yyy.Add(newmodel); await _contextXXX.SaveC...