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"]

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 的寬度

input 連結 datalist 用程式控制彈出選項

範例: nextTick(() => document.querySelector('input').showPicker());  ※僅支援現代瀏覽器