2015年9月25日 星期五

How jquery.validate.js do multi remote rule

使用jquery.validate做前端驗證,搭配remote做AJAX到後端驗證

有一個需求
新增紀錄時驗證客戶編號欄位:
1.存在資料庫
然後新需求的驗證是
2.本月份紀錄中若有成交紀錄則不可新增

我試著對一個欄位加兩個remote屬性,他會取最後加的那個,所以不行這樣,
於是就把原本的方法改成


if (資料庫存在此客編)
{
   if(本月此客編無成交紀錄)
   {
      return JsonConvert.SerializeObject(true);
   }
   else
   {
      return  JsonConvert.SerializeObject("本月此客編已有成交紀錄");
   }
}
else
{
   return  JsonConvert.SerializeObject("此客編不存在");
}

然後把原本的ERROR MESSAGE拿掉,
這樣回傳是字串時,jquery.validate就會把字串當成錯誤訊息
回傳TRUE時,就會判定驗證通過了

2015年9月24日 星期四

NPOI write to Stream get Can't open closed Stream error

用NPOI寫EXCEL檔案
然後轉成串流,再轉乘Attachment給Email夾帶
但是一直發生無法存取關閉的串流錯誤
爬到這篇
http://www.codeproject.com/Tips/813187/Csharp-Read-and-Write-Excel-xls-and-xlsx-Files-Con
底下的留言
他先把串流轉byte 再開新串流byte轉串流
試了一下後果然可以了
但效能上如何就沒測了

var arrBites = stream.ToArray();



MemoryStream newStream = new MemoryStream(arrBites);


2015年9月7日 星期一

jquery.validate.js的數字驗證沒有驗證逗點跟小數點

早上又被call程式出錯...又是數字欄位塞了逗點進去

我用jquery.validate.js作前端驗證,不過後端的驗證只有insert寫了,
在update事件忘了寫整數驗證
就那麼剛好user使用了update事件去塞了錯誤的內容
程式就當了

參考
http://blog.rebuildall.net/2011/03/02/jquery_validate_and_the_comma_decimal_separator

他是寫成js去include
我直接把他的方法寫在document ready事件裡面
然後正規表達式改成


//接受不限長度的整數

/^\d*$/


這樣逗點跟小數點都過濾掉了

2015年9月3日 星期四

Response.Write 在IE 10無法輸出檔案

網站有功能使用Response.Write去輸出EXCEL檔案
有客戶端IE按下按鈕後毫無反應
但是其他相同環境的客戶端卻沒有問題,正常運作
GOOGLE了老半天,什麼RESPONSE要用END還是CLOSE結尾、
HEADER的CONTENT TYPE要怎麼設定等等,
但是都無法解決
後來遠端過去看客戶端IE設定
發現是他勾選了安全性裡面的ActiveX篩選這個設定
 取消掉後就正常了