2017年3月7日 星期二

[Bootstrap]tab event 相關


//點擊頁籤取得頁籤的文字
$('.nav-tabs a').on('shown.bs.tab', function (event) {
     var x = $(event.target).text();
      alert(x);
 });

if ($('.nav-tabs li:eq(0) a').text() == "基本資料") {

}

//設定顯示哪個頁籤
   $('[href="#tab2"]').tab("show");

2017年3月1日 星期三

[SQL]刪除無主Key重複資料的第一筆

因發現來源端資料有重複,故需刪除重複,SQL如下

WITH  q AS
        (
        SELECT TOP 1 *
        FROM   test where id = '123' and week = 2 and section = '06'
        )
DELETE
FROM    q

2017年2月13日 星期一

[MVC]出現HTTP Error 401.0 - Unauthorized

使用預設樣板建立MVC5,Identity來做驗證,如Action有使用Authorize會出現

HTTP Error 401.0 - Unauthorized


如沒使用Identity,在web.config

<system.webServer>
    <modules>
       <remove name="FormsAuthentication" /> //將這行移除即可
    </modules>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>

2017年1月9日 星期一

[Bootstrap]解決開啟兩個modal,scrollbar 會消失問題

目前有一個列表,點選其中一筆資料開啟視窗後再點選按鈕開啟第2個視窗,
目前遇到的問題是關閉第2個視窗時捲軸會消失導致第一層視窗下方畫面都看不到。

解決方式在頁面上加入以下script可解決
$(document).on('hidden.bs.modal', '.modal', function () {
    $('.modal:visible').length && $(document.body).addClass('modal-open');
});

2016年12月22日 星期四

[jqGrid] jqGrid在Bootstrap Tab 自動寬度作法

$('a[data-toggle=tab]').click(function () {
        //將list寬度 設定為tab頁面寬度
        $("#list").setGridWidth($('div.active').width());
        $('.ui-jqgrid .ui-jqgrid-btable').attr('style', 'width:' + $('div.active').width());
    });

//縮放時自動調整寬度
$(window).resize(function () {
        $("#listCaseOfficerRequestStudids").jqGrid('setGridWidth', $('div.active').width());
 });

2016年12月19日 星期一

[textext.plugin.tags]tab自訂顯示文字,hidden存Key值



如上圖所示,想要在tab標籤顯示編號+姓名
tags.js預設會產生一個hidden input自動存入與標籤上的名稱一樣,這樣取值需要另外再處理不太方便。
找了相關文件也沒有找到如何達成我這樣的需求。
後來只好土法煉鋼直接修改tags.js檔(看了好久才看懂他在寫甚麼)

在第textext.plugin.tags.js 502行改成以下即可,意思就是只取"-"以前的字串存入hidden input
 result.push($(this).data(CSS_TAG).toString().substring(0, $(this).data(CSS_TAG).toString().indexOf("-")));

然後我就可以取hidden的值囉
$(".text-wrap input:hidden").val()
================================================================

20180206
最近又有專案需要用到此功能,重新在檢視了一下原來可以更簡單(不知當時再想啥),以上就請忽略吧!

這次是直接使用帳號加入tag後再將userid轉成姓名
//插入標籤
$('#textareaParticipants').textext()[0].tags().addTags([userid]);
    //搜尋所有tag
    $(".text-tag .text-button .text-label").each(function (i, obj) {
        //如果執行到該迴圈的tag值等於正要加入的帳號id才將帳號轉成姓名
        if ($(this).text() == userid) {
            var userName = "";
            $.ajax({
                url: '/TourManage/GetUserData/',
                type: 'post',
                data: { userid: userid },
                cache: false,
                async: false,
                success: function (res) {
                    //alert(res.UserName);
                    userName = res.UserName
                },
                error: function (x, e) {
                    window.location.href = "/Default/Login?err=995";
                }
            });
            //將tag至換成姓名
            $(this).text(userName);
        }
    });

Visual Studio JS intellisense 失效解決方式

  試了好久,發現到工具>選項>IntelliCode js項目設定啟用,重新開啟VS就正常了! 後來發現是TypeScript3.2版有問題停用,使用4.3版的TypeScript即可