此問題因瀏覽器版本跟使用者電腦而異,所以同一個畫面同一個欄位有的人會遇到有的人不會
<input dont-fill type="tel" class="form-control" />
.directive('dontFill', function () {
return {
restrict: 'A',
link: function link(scope, el, attrs) {
// password fields need one of the same type above it (firefox)
var type = el.attr('type') || 'text';
// chrome tries to act smart by guessing on the name.. so replicate a shadow name
var name = el.attr('name') || '';
var shadowName = name + '_shadow';
// trick the browsers to fill this innocent silhouette
var shadowEl = angular.element('<input type="' + type + '" name="' + shadowName + '" style="display: none">');
// insert before
el.parent()[0].insertBefore(shadowEl[0], el[0]);
}
};
})
2018年11月30日 星期五
2018年11月28日 星期三
entity framework transaction 用法
using (var scope = db.Database.BeginTransaction())
{
...
db.SaveChanges();
scope.Commit();
}
※ 跳出 exception 不須特別呼叫 Rollback()
※ 使用 TransactionScope 對同一個資料庫也會造成 msdtc 相關錯誤,不予採用
{
...
db.SaveChanges();
scope.Commit();
}
※ 跳出 exception 不須特別呼叫 Rollback()
※ 使用 TransactionScope 對同一個資料庫也會造成 msdtc 相關錯誤,不予採用
2018年11月22日 星期四
使用 LinqToExcel 讀取 csv
不支援 \t 分隔字元(其他未確認)
不支援unicode 編碼
寫法範例
System.IO.File.WriteAllText(FileName, System.IO.File.ReadAllText(FileName).Replace("\t", ","), System.Text.Encoding.Default)
var rows = new ExcelQueryFactory(FileName).WorksheetNoHeader(0)
不支援unicode 編碼
寫法範例
System.IO.File.WriteAllText(FileName, System.IO.File.ReadAllText(FileName).Replace("\t", ","), System.Text.Encoding.Default)
var rows = new ExcelQueryFactory(FileName).WorksheetNoHeader(0)
2018年11月20日 星期二
2018年11月19日 星期一
使用 sessionStorage 針對同一分頁做資料交換
寫入
sessionStorage.setItem("公司id", $scope.companyid);
讀取
$scope.companyid = sessionStorage.getItem("公司id");
sessionStorage.setItem("公司id", $scope.companyid);
讀取
$scope.companyid = sessionStorage.getItem("公司id");
2018年11月8日 星期四
ui-select 於 ng-repeat 中綁定變數屬性方式
<div ng-repeat="a in list">
<ui-select append-to-body="true" ng-change="a['收件人id']=a['收件人物件'].value;" ng-model="a['收件人物件']">
<ui-select-match allow-clear="true">
<span ng-bind="$select.selected.text"></span>
</ui-select-match>
<ui-select-choices repeat="obj in employees | filter: $select.search track by $index">
<span ng-bind="obj.text"></span>
</ui-select-choices>
</ui-select>
因為ui-select ng-model 對應的是 repeat 中的元素,若該元素是物件,但希望改成對應ng-repeat物件某個屬性(收件人id),則需要另外用屬性物件(收件人物件)來轉換,且若考慮既有資料預設值,陣列元素也需要先設定好該屬性物件,以便正確顯示目前的選項
<ui-select append-to-body="true" ng-change="a['收件人id']=a['收件人物件'].value;" ng-model="a['收件人物件']">
<ui-select-match allow-clear="true">
<span ng-bind="$select.selected.text"></span>
</ui-select-match>
<ui-select-choices repeat="obj in employees | filter: $select.search track by $index">
<span ng-bind="obj.text"></span>
</ui-select-choices>
</ui-select>
因為ui-select ng-model 對應的是 repeat 中的元素,若該元素是物件,但希望改成對應ng-repeat物件某個屬性(收件人id),則需要另外用屬性物件(收件人物件)來轉換,且若考慮既有資料預設值,陣列元素也需要先設定好該屬性物件,以便正確顯示目前的選項
2018年11月2日 星期五
css 設定注意
1. class 優先權大於 type
.form-control {
width:auto;
}
table.詳細資料 select {
width:150px;
}
最後結果 select width 會是 auto
若要覆蓋.form-contrl 設定,需改成
table.詳細資料 select.form-control {
width:150px;
}
2. 若 select 使用多個class,多個class 優先權大於單一class
table.詳細資料 select.form-control.單位 {
width:100px;
}
最後結果 select width 會是 100px (優先權 : select.form-control.單位 > select.form-control > .form-control)
3. 下面載入的 css 優先權大於上面載入,因此針對套件內建css 若要客製化,須把客製化css 放下面
.form-control {
width:auto;
}
table.詳細資料 select {
width:150px;
}
最後結果 select width 會是 auto
若要覆蓋.form-contrl 設定,需改成
table.詳細資料 select.form-control {
width:150px;
}
2. 若 select 使用多個class,多個class 優先權大於單一class
table.詳細資料 select.form-control.單位 {
}
最後結果 select width 會是 100px (優先權 : select.form-control.單位 > select.form-control > .form-control)
3. 下面載入的 css 優先權大於上面載入,因此針對套件內建css 若要客製化,須把客製化css 放下面
訂閱:
文章 (Atom)
input 連結 datalist 用程式控制彈出選項
範例: nextTick(() => document.querySelector('input').showPicker()); ※僅支援現代瀏覽器
-
1. 設定檔案下載儲存位置為 C:\Users\%username%\AppData\Local\Google\Chrome\User Data\Default\Cache 2. 勾選"下載每個檔案前詢問儲存位置" 3. 針對不要下載的檔案類型於第一...
-
自動設定欄寬 sheet.Cells.AutoFitColumns(3, 20); // 必須設定 min 跟 max 才會正常作用 凍結欄位 sheet.View.FreezePanes(4, 4); 標題列 ws.PrinterSettings.RepeatRo...
-
使用 FreeSpire.XLS ... ep.Save(); using (var workbook = new Workbook()) using (var memStream = new MemoryStream()) { workbook.LoadFromSt...