改用 input 事件
使用範例:
$("#進貨驗收table_filter input").bind("input", function () {
alert($(this).val());
});
2013年12月24日 星期二
2013年12月19日 星期四
javascript 的數值運算會產生多餘小數
8.72 * 3.0=26.1600000000004
解法: 假設最多保留小數兩位則 Math.round(8.72 * 3.0*100)/100=26.16
解法: 假設最多保留小數兩位則 Math.round(8.72 * 3.0*100)/100=26.16
2013年11月20日 星期三
2013年10月24日 星期四
將 table 中多筆資料的某些欄位合併變成一個字串
select stuff((select ',' + c1+c2 from table1 for xml path('')),1,1,'')
利用 for xml path('') 合併
利用 stuff('xxx',1,1,'') 去除第一個逗號
利用 for xml path('') 合併
利用 stuff('xxx',1,1,'') 去除第一個逗號
2013年10月22日 星期二
安裝 sql server express 2012 後卻找不到組態管理員 (windows 8)
To access SQL Server Configuration Manager Using Windows 8
Because SQL Server Configuration Manager is a snap-in for the Microsoft Management Console program and not a stand-alone program, SQL Server Configuration Manager not does not appear as an application when running Windows 8. To open SQL Server Configuration Manager, in the Search charm, under Apps, type SQLServerManager11.msc (for SQL Server 2012) or SQLServerManager10.msc for (SQL Server 2008), and then press Enter.
2013年10月9日 星期三
如何將父類別物件轉型成子類別物件
無法直接轉型,必須在父類別撰寫產生子類別物件的函數,範例如下
public virtual T Clone() where T : 調整單DisplayViewModel
{
var obj = (T)Activator.CreateInstance(typeof(T));
obj.調整單號 = this.調整單號;
obj.調整日期 = this.調整日期;
obj.說明 = this.說明;
obj.調整人員 = this.調整人員;
obj.建檔人員 = this.建檔人員;
obj.建檔時間 = this.建檔時間;
return obj;
}
使用範例
調整單ViewModel viewmodel = this.DisplayViewModel.Clone<調整單ViewModel>();
public virtual T Clone
{
var obj = (T)Activator.CreateInstance(typeof(T));
obj.調整單號 = this.調整單號;
obj.調整日期 = this.調整日期;
obj.說明 = this.說明;
obj.調整人員 = this.調整人員;
obj.建檔人員 = this.建檔人員;
obj.建檔時間 = this.建檔時間;
return obj;
}
使用範例
調整單ViewModel viewmodel = this.DisplayViewModel.Clone<調整單ViewModel>();
2013年9月26日 星期四
取得或設定 checkbox 值
取值 : $('#123').prop('checked')
設定 : $('#123').prop('checked',true)
何時使用 prop() 存取屬性?
存取屬性 checked、selected、disabled 使用 prop(),其他屬性則用attr()
設定 : $('#123').prop('checked',true)
何時使用 prop() 存取屬性?
存取屬性 checked、selected、disabled 使用 prop(),其他屬性則用attr()
2013年8月3日 星期六
2013年8月1日 星期四
jQuery Validation Plugin 加入驗證規則
範例:
$.validator.addMethod("檢查選擇課程或活動", function (value, element) {
return $('[name=課程任務]').val() != "" || $('[name=活動任務]').val() != "";
}, "請選擇課程或活動");
$.validator.addMethod("檢查選擇課程或活動", function (value, element) {
return $('[name=課程任務]').val() != "" || $('[name=活動任務]').val() != "";
}, "請選擇課程或活動");
2013年7月22日 星期一
2013年7月1日 星期一
2013年6月14日 星期五
不同area 存在相同名稱的 controller 造成無法呼叫action
錯誤訊息如下:
找到多個與名稱為 'Product' 的控制器相符的型別。如果服務此要求 ('{controller}/{action}/{id}') 的路由沒有指定命名空間以搜尋符合該要求的控制器,就會發生這個情況。在這種情況下,請呼叫可接受 'namespaces' 參數的 'MapRoute' 方法的多載來註冊此路由。
解法:
RouteConfig.RegisterRoutes 指定namespace
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "erpweb.Controllers" }
);
找到多個與名稱為 'Product' 的控制器相符的型別。如果服務此要求 ('{controller}/{action}/{id}') 的路由沒有指定命名空間以搜尋符合該要求的控制器,就會發生這個情況。在這種情況下,請呼叫可接受 'namespaces' 參數的 'MapRoute' 方法的多載來註冊此路由。
解法:
RouteConfig.RegisterRoutes 指定namespace
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
new[] { "erpweb.Controllers" }
);
2013年6月11日 星期二
如何讓server 產生的空白字元傳換成網頁上的空白
將空白字元取代成 \xA0
說明:
nbsp in html corresponds to "\xA0" as a C# string, so use this instead of spaces, when HTML encoded it will produce nbsp
說明:
nbsp in html corresponds to "\xA0" as a C# string, so use this instead of spaces, when HTML encoded it will produce nbsp
2013年5月14日 星期二
查看造成 sqlserver.exe cpu 負載持續飆到9x%
Select * from sys.dm_exec_requests a CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) AS st
尋找 blocking_session_id 非0的並執行 kill 將其刪除即可恢復正常
需根據最後一個欄位分析造成此現象的原因,無法解決則要避免有機會執行到此指令
尋找 blocking_session_id 非0的並執行 kill 將其刪除即可恢復正常
需根據最後一個欄位分析造成此現象的原因,無法解決則要避免有機會執行到此指令
2013年5月3日 星期五
table 如何指定欄位寬度
table 須設定 css: table-layout: fixed 以便可以正確設定欄位寬度,且能加快顯示速度 (不需要等待資料全部載入才顯示)
英文字強制斷行
style="width:300px;word-break: break-all"
英文字不斷行 (欄寬會增加)
style="width:300px;word-break: normal"
若要讓文字超出欄寬時不要轉折而是截斷並出現...則再加上
overflow: hidden; white-space: nowrap; text-overflow:ellipsis;
overflow: hidden; white-space: nowrap; text-overflow:ellipsis;
2013年4月9日 星期二
2013年3月16日 星期六
epplus save 失敗
只要應用程式集區執行身份的權限不夠大就會被限制呼叫 .save() 時可以用的暫存空間(用來製作壓縮檔案), 資料太多超過這個限制造成.save() 失敗拋出exception
解法是另外建立帳號且是administrators 群組,然後把應用程式集區的識別身份改為這個帳號
解法是另外建立帳號且是administrators 群組,然後把應用程式集區的識別身份改為這個帳號
2013年2月21日 星期四
datatables取得點選的tr並讀取td內容
範例如下
var table = $('#table').dataTable();
$("#table tbody").delegate("tr", "click", function () {
var nNodes = table.fnGetNodes(); //nNodes[?] 回傳第?個tr
var 選擇列 = table.fnGetPosition(this);
if (選擇列 != null) {
var aData = table.fnGetData(選擇列); //aData[?] 就是第?個td內容
}
});
hyperlink 執行action 完成後顯示訊息
範例如下
view
====
$('#列印條碼link').click(function () {
$.post(this.href, {}, function (result) {
alert(result.Message);
});
return false;
});
controller
====
return Json(new{Message=message});
取得當前controller和area名稱
areaname: (string)Request.RequestContext.RouteData.DataTokens["area"] ?? "Root"
controllername: (string)Request.RequestContext.RouteData.Values["controller"]
actionname: (string)Request.RequestContext.RouteData.Values["action"]
controllername: (string)Request.RequestContext.RouteData.Values["controller"]
actionname: (string)Request.RequestContext.RouteData.Values["action"]
enum 學習心得
字串 => enum : ([enum名稱])Enum.Parse(typeof([enum名稱]), "[字串]", true);
值 => enum : ([enum名稱])Enum.ToObject(typeof([enum名稱]), [值]);
enum => 值 : Convert.ToInt32([enum])
enum => 字串 : [enum].ToString()
值 => 字串 : (([enum名稱]) [值]).ToString()
加入描述屬性產生對應集合
enum 規格 { [Description("<90cm")] _89cm = 1, [Description("90~120cm")] _90120cm, [Description(">120cm")] _121cm }
var list = Enum.GetValues(typeof(規格)).Cast<規格>().Select(a => new { value = (int)a, text = a.GetAttributeOfType<DescriptionAttribute>()?.Description ?? a.ToString() }).ToList();
列出每週日、一、...
Enum.GetValues(typeof(DayOfWeek)).Cast<DayOfWeek>().Select(a => new { value = (int)a, text = new CultureInfo("zh-tw").DateTimeFormat.GetShortestDayName(a) }).ToList();
2013年2月20日 星期三
datatables 如何做到橫向卷軸
1. table 外面包div
2. div 的寬度等於table可見寬度
3. 轉為datatables 的參數設定如下
sScrollX : 100%
sScrollXInner :設定實際table 的寬度
2. div 的寬度等於table可見寬度
3. 轉為datatables 的參數設定如下
sScrollX : 100%
sScrollXInner :設定實際table 的寬度
2013年1月4日 星期五
sql server 撈出不重複的資料(依據某個欄位排序後找出第一筆)
select * from (SELECT *,ROW_NUMBER() OVER (PARTITION BY [不重複欄位] ORDER BY [排序欄位]) AS rn FROM [表格]) a where rn=1
訂閱:
文章 (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...