2016年10月31日 星期一

[C#]從MemoryStream下載檔案並壓縮成zip檔

1.在NuGet管理套件搜尋DotNetZip並安裝
2.using Ionic.Zip;
3.
using (MemoryStream memoryStream = new MemoryStream())
{
                    TextWriter textWriter = new StreamWriter(memoryStream);

                    foreach (var item in swipeS_RequestRecordSaveService.GetRequestRecordSaveList(id))
                    {
                        textWriter.WriteLine("檔案內容");
                        textWriter.Flush();
                     
                    }
                    byte[] bytesInStream = memoryStream.ToArray();
                    memoryStream.Seek(0, SeekOrigin.Begin);
                    string password = desFun.Encrypt(id.ToString() + DateTime.Now.Minute.ToString());
                    using (ZipFile zipFile = new ZipFile())
                    {
                        zipFile.Password = password;
                        zipFile.AddEntry(fileName, memoryStream);
                        Response.ClearContent();
                        Response.ClearHeaders();
                        Response.AppendHeader("content-disposition", "attachment; filename=xxx.zip");
                        zipFile.Save(Response.OutputStream);
                    }
                    memoryStream.Close();
}

更多使用方式介紹 請上 https://dotnetzip.codeplex.com/

2016年10月27日 星期四

[WebApi2]允許跨域設定方式

1.在Visual Studio 管理NuGet套件搜尋Microsoft.AspNet.WebApi.Cors並安裝
2. 在App_Start資料夾內的WebApiConfig加入config.EnableCors();    
public static void Register(HttpConfiguration config)
{
   config.EnableCors();      
}
3.在Global.asax 加入GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
設定只返回文字格式
protected void Application_Start()
{
   GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
}

4.在action上設定
  [EnableCors(
           origins: "http://localhost",//允許哪些來源網址,允許存取此web API
           headers: "*", //全部
           methods: "post")]

2016年9月8日 星期四

[jqGrid]百分比顯示並排序

jqGrid將數值格式化為百分比顯示,並可排序 。

colModel: [
                   { name: 'Enrollment', width: 1, align: 'center', formatter: 'currency', formatoptions: { suffix: '%' }, sorttype: 'currency' }
        ]

[C#]Math.Round 方法


取小數點兩位數
Math.Round(99.110000,2) //99.11

其他用法詳見MSDN
https://msdn.microsoft.com/zh-tw/library/system.math.round(v=vs.110).aspx


2016年8月26日 星期五

[bootstrap-datetimepicker]相關使用方式

1.設定預設日期
JS:
    $('#divStartDate').datetimepicker({
        viewMode: 'days',
        format: 'YYYY/MM/DD',
        defaultDate: new Date()
    });

Html:
<div class="form-group">
        <div class='input-group date' id='divStartDate'>
            <input id="txtStartDate" name="txtStartDate" type='text' class="form-control width160px" />
            <span class="input-group-addon">
                <span class="glyphicon glyphicon-calendar"></span>
            </span>
        </div>
    </div>



2.取值
   $('#divStartDate').data('date');

Visual Studio JS intellisense 失效解決方式

  試了好久,發現到工具>選項>IntelliCode js項目設定啟用,重新開啟VS就正常了! 後來發現是TypeScript3.2版有問題停用,使用4.3版的TypeScript即可