透過 bower 安裝 angular-confirm-modal
修改 .js 以便支援 html 語法 (如 <br />)
<div class="modal-body"><span ng-if="data.htmltext" ng-bind-html="data.htmltext"></span><span ng-if="data.text">{{data.text}}</span></div>
$confirm({ htmltext: $sce.trustAsHtml(result.data + "<br><br>是否繼續?"), title: "偵測到相同刷卡資料,請確認是否重複輸入", ok: '是', cancel: '否' })
.then(function () {
... // 按ok才執行
});
2018年1月25日 星期四
2018年1月17日 星期三
iis 7.5 中設定應用程式集區識別身分ApplicationPoolIdentity的NTFS權限方式
應用程式集區預設識別身分為 ApplicationPoolIdentity ,是動態產生的使用者,若要在安全性中添加使用者,輸入格式為
IIS AppPool\[應用程式集區名稱]
IIS AppPool\[應用程式集區名稱]
2018年1月16日 星期二
ag-grid 更新部分資料方法
$scope.gridOptions.api.redrawRows({ rowNodes: [$scope.focusNode ] }); // 更新畫面部分node
$scope.gridOptions.api.redrawRows(); // 更新畫面所有node
$scope.gridOptions.api.updateRowData({ remove: [$scope.selectData] }); // 刪除資料
$scope.gridOptions = {
onCellFocused: function (event) {
$scope.focusNode = $scope.gridOptions.api.getModel().rowsToDisplay[event.rowIndex];
},
PS. setData 不會再次觸發 checkboxSelection 自訂函數,需搭配 redrawRows
PS. redrawRows 會造成 focus 跑掉,若要設定setFocusedCell 必須放在下面執行
var firstCol = $scope.gridOptions.columnApi.getAllDisplayedColumns()[1];
$scope.gridOptions.api.setFocusedCell($scope.focusNode.rowIndex, firstCol);
$scope.gridOptions.api.redrawRows(); // 更新畫面所有node
$scope.gridOptions.api.updateRowData({ remove: [$scope.selectData] }); // 刪除資料
$scope.gridOptions.api.updateRowData({ add: result.data, addIndex: 0 }); // 加入資料
$scope.focusNode.setData($scope.selectData); // 資料內容異動更新回node(若有用到cellRenderer則不會重新render,還是要搭配redrawRows)
$scope.focusNode.setData($scope.selectData); // 資料內容異動更新回node(若有用到cellRenderer則不會重新render,還是要搭配redrawRows)
onCellFocused: function (event) {
$scope.focusNode = $scope.gridOptions.api.getModel().rowsToDisplay[event.rowIndex];
},
PS. setData 不會再次觸發 checkboxSelection 自訂函數,需搭配 redrawRows
PS. redrawRows 會造成 focus 跑掉,若要設定setFocusedCell 必須放在下面執行
var firstCol = $scope.gridOptions.columnApi.getAllDisplayedColumns()[1];
$scope.gridOptions.api.setFocusedCell($scope.focusNode.rowIndex, firstCol);
2018年1月9日 星期二
c# 6&7 新特色
1. 使用 valuetuple 結構定義具備多個屬性的資料 (需透過 nuget 安裝package)
2. 函數中可以定義函數
3. 字串常數中可以置入物件 (取代 string.format)
4. 屬性及方法支援 lambda
5. 使用 nameof 動態取得屬性名稱 (避免hardcode)
ex:
class test {
string FirstName;
string LastName;
string FullName => $"{FirstName}{LastName}"; // 3,4
void func1() {
(int Height, int Weight) GetHeightAndWeight() //1,2
{
var returnVal = (Height: 172, Weight: 80); //1
return returnVal;
}
var aa = GetHeightAndWeight();
aa.Weight++;
var bb=$"{nameof(FirstName)}:{FirstName}"; //3,5
}
}
使用 visual studio 開啟網站類型的專案需額外安裝 package
1. Microsoft.CodeDom.Providers.DotNetCompilerPlatform
2. Microsoft.Net.Compilers
並修改 web.config
compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 <= 原本是6就會只支援 c# 6
2. 函數中可以定義函數
3. 字串常數中可以置入物件 (取代 string.format)
4. 屬性及方法支援 lambda
5. 使用 nameof 動態取得屬性名稱 (避免hardcode)
ex:
class test {
string FirstName;
string LastName;
string FullName => $"{FirstName}{LastName}"; // 3,4
void func1() {
(int Height, int Weight) GetHeightAndWeight() //1,2
{
var returnVal = (Height: 172, Weight: 80); //1
return returnVal;
}
var aa = GetHeightAndWeight();
aa.Weight++;
var bb=$"{nameof(FirstName)}:{FirstName}"; //3,5
}
}
使用 visual studio 開啟網站類型的專案需額外安裝 package
1. Microsoft.CodeDom.Providers.DotNetCompilerPlatform
2. Microsoft.Net.Compilers
並修改 web.config
compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:7 <= 原本是6就會只支援 c# 6
訂閱:
文章 (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...