2014年4月14日 星期一

T-SQL MS SQL日期相關

以下這篇寫的超清楚的請參考
點我前往
點我前往
以下記錄自己會常用
==========================
日期是否正確
SELECT ISDATE('日')
回傳0錯誤1正確
==========================
目前時間
select GETDATE()
格林威治時間
select GETUTCDATE()
==========================
取得星期幾
SELECT Right(datename(weekday,getdate()),1)
==========================
取得幾天前或幾天後
SELECT DATEADD(day, -3, '2014-08-14')
SELECT DATEADD(day, 3, '2014-08-14')

2014年4月11日 星期五

Asp.net 使用Resource.resx檔 + MVC

我想多國語言大多數的人都會用這個做法吧寫在資源檔
如何叫用如下
在.cs
 Label1.Text = Resources.Resource.名稱;
在aspx
  Text='<%$ Resources:Resource, 名稱%>'
在js or 網頁中
 var StringTimeFormatError = "<%= Resources.Resource.名稱 %>";
alert(StringTimeFormatError );
在MVC 網頁中
@Resources.Resource.名稱 
<system.web>
   <globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/>
</system.web>
參考網址
Set the Resource String in javascript
如何讓 App_GlobalResources 裡的全域資源檔變成公開類別

2014年4月3日 星期四

jQueryUI datepicker自訂日期不能選擇

原本以回很難的
因為要用jQuery UI 去指訂某些日期不能選擇
還好網路很方變找的個方法
在beforeShowDay時設定不能用的日期即可範例如下
$("#datae").datepicker({               
        beforeShowDay: setDisableDate //設定日期的function
   });  

   var DisableDate = [];//日期陣列 

 
  //可以用ajax post之類來帶入資料
  //todo

  //設定的function Elaine Wu
  function setDisableDate(date) {
        var strDate = date.getFullYear() + "-" + toTen(date.getMonth() + 1) + "-" + toTen(date.getDate());
        var aryReturn = [true, ""];
        $.each(DisableDate, function (key, value) {
             if (value == strDate) {
                 aryReturn = [false, "", "已設定不能選擇"];
             }
        });
        return aryReturn;
   }

   function toTen(s) {
            return s < 10 ? '0' + s : s;
   }
參考來源
Elaine Wu如何讓datepicker中某些特定日期不可選?
jQuery Datepicker 选择指定日期【转】

2014年4月1日 星期二

jQuery Master-Detail範例

相信Master Detail是很常用的架構
呈現方式百百種
我大多會用fanybox或window.open
因為做起來相當簡單還有
昨天看到一個相當簡單又實用的範例分享給需要的人
點我前往

2014年3月28日 星期五

jQuery go to Top Bottom PageUp PageDown

又來念一下做post機上用網頁系統真麻煩
但還是要克服,用法很簡單
top
$('#top').click(function () {
     $('body,html').animate({ scrollTop: 0 }, 300);
});
bottom
$('#bottom').click(function () {
     $('body,html').animate({ scrollTop: $(document).height() }, 300);
});
PageDown
$('#PageDown').click(function () {
     $('body,html').animate({ scrollTop:  $(window).scrollTop() + 300 }, 300);
});
PageUp
$('#PageUp').click(function () {
     $('body,html').animate({ scrollTop:  $(window).scrollTop() - 300 }, 300);
});

2014年3月27日 星期四

FancyBox 解決gallery模式時next prev檔到scroll bar

點我進入
這個解法官方就有摟
註記一下讓自己不會忘記修改css
.fancybox-nav {
 position: absolute;
 top: 0; 
 /*width: 40%;Marco*/
 width: 60px;
 height: 100%;
 cursor: pointer;
 text-decoration: none;
 background: transparent url('blank.gif'); /* helps IE */
 -webkit-tap-highlight-color: rgba(0,0,0,0);
 z-index: 8040;
}

.fancybox-prev {
 /* left: 0;Marco */
 left: -60px;
}

.fancybox-next {
   /* right: 0; Marco */
  right: -60px;
}

Google Chrome Scroll Bar 變成windows 7 Scroll Bar

最近也在post機上的網頁
但是post機相當舊了裝IE8是可以跑但超慢
於是就找了Chrome來裝但Post機上用網頁操作是有點不方便
尤其是chrome scroll bar相當窄
我以有時會點不到還好找到將Chrome scroll bar變成win 7的外掛程式
使用相當簡單
1.Win7 Scrollbars
2.點 + ADD or + 免費
3.關掉Chrome再開就好
How to restore the vertical scroll bar arrows in Google Chrome

2014年3月13日 星期四

jQueryUI Virtual Keyboard

最近有遇到在post機上使用網頁的案子
因為post上只有簡單的鍵盤所以只能像ktv一樣輸入簡單的字
但網頁的話就不像ap那麼簡單
還好找到了一個不錯的jQuery UI Virtual Keyboard
這樣可以防者User輸入些不必要的字元
但中文的化可能就...
使用相當簡單
加入
1.jquery參考
2.加入jquery ui參考
3.加入Virtual Keyboard官方參考

2014年2月20日 星期四

jQuery 抓取table tr td 的值

很簡單的語法相當實用

         $(function () {
             $('table > tbody > tr').each(function () {
                 var mWord = $.trim($(this).find("td:eq(1)").text()); //1是抓取第二欄的文字
                
             });
         });     

2014年2月18日 星期二

Asp.net ListView Button RowIndex

先在ListView中放一個Button
  
寫code
        protected void Button1_Click(object sender, EventArgs e)
        {            
            ListViewItem listviewitem = (ListViewDataItem)((Button)sender).NamingContainer;
            int RowIndex = listviewitem.DataItemIndex;//第幾的RowIndex 從0開始喔
           
        }
以上就知道是第幾筆的Button
很實用的招式

2014年2月6日 星期四

Bootstrap v3.1.0範例

最近很夯的東西
可以幫助程式設計師在沒有美編時也能做出美美的網站
官網
懶的每次都寫
所以先包好直接copy用
內含
modernizr-2.6.2.js
jquery-1.10.2.js
bootstrap.js
bootstrap-select.js
respond.js

點我下載

2013年12月30日 星期一

Asp.net MVC NuGet安裝指定套件的版本(17)

VS有個很強的功能就是NuGet相信很多人都知了就不再多說
至於沒用過的可試試,只要在專案上按下右鍵如下圖及可搜尋及安裝

但像jQuery有很多版本確不想要安裝到最新的版本那怎麼辦?
jquery點選下面的版本
會有一行 PM > Install-Package jQuery -Version 1.10.2
到VS > 工具 > 程式庫套件管理員 >套件管理主控台 > 點一下就會出現主控台視窗 將剛的那一樣貼上執行即可

2013年12月22日 星期日

Asp.net jQuery+DropDownList連動後出現System.Web.HttpUnhandledException

這其實只是不了解jquery及asp.net postback的問題
有兩個DropDownList,Master及Detail
下拉Master連動Detail一般來寫程式碼都會如下
 $(function () {
    $("#<%= Master.ClientID%>").change(function () {
            var q = $("#<%= Master.ClientID%>").val();
                $.ajax({
                    url: '/get.ashx',
                    type: 'post',
                    async: true,
                    data: { q: q },
                    success: function (data) {
                        $('#<%= Detail.ClientID%>').empty();
                        var myarray = $.parseJSON(data);
                        $.each(myarray, function (i, item) {
                            var option = "<option value='" + myarray[i].value + "'>" + myarray[i].txt + "</option>";
                            $('#<%= Detail.ClientID%>').append(option);
                        });
                    }
                });
            });
  });
上面程式碼看似無誤,但在PostBack後就會出現System.Web.HttpUnhandledException
因為PostBack後會產生畫面
放在$(function (){});裡面又會跑一次但程式而此時就會造成錯誤
所以必需將select change放於jquery function外
 $(function () {
    
  });

$("#<%= Master.ClientID%>").change(function () {
            var q = $("#<%= Master.ClientID%>").val();
                $.ajax({
                    url: '/get.ashx',
                    type: 'post',
                    async: true,
                    data: { q: q },
                    success: function (data) {
                        $('#<%= Detail.ClientID%>').empty();
                        var myarray = $.parseJSON(data);
                        $.each(myarray, function (i, item) {
                            var option = "<option value='" + myarray[i].value + "'>" + myarray[i].txt + "</option>";
                            $('#<%= Detail.ClientID%>').append(option);
                        });
                    }
                });
            });

2013年12月18日 星期三

Asp.net 系統收到多個不同的 Content-Disposition 標頭。我們不允許這種情形,這是為了避免遭到 HTTP 回應分割攻擊。

今天使用者遇到了這個問題
系統收到多個不同的 Content-Disposition 標頭。我們不允許這種情形,這是為了避免遭到 HTTP 回應分割攻擊。
看了一下程式
 Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}", mFileName));
 Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", mFileName));
多加了分雙引號這樣輸出的標頭才會指定檔名是什麼減少攻擊

2013年11月25日 星期一

IIS 回收時間(IIS Session Time Out)

很難得的遇到一次User全部被系統踢出去的經驗
所以判斷是IIS自己踢的
找了一下設定在
IIS > 應用程式集區 > 集區名稱上右鍵 > 進階設定
如圖

固定時間間隔(分鐘):預設是1740改成0就不會回收了

2013年11月17日 星期日

Javascript 秒數轉時分秒

最近常在網頁上用到
尤其是撥html5 video
   function formatSecond(secs) {          
            var hr = Math.floor(secs / 3600);
            var min = Math.floor((secs - (hr * 3600)) / 60);
            var sec = parseInt( secs - (hr * 3600) - (min * 60));

            while (min.length < 2) { min = '0' + min; }
            while (sec.length < 2) { sec = '0' + sec; }
            if (hr) hr += ':';
            return hr + min + ':' + sec;

        }
參考網址 點我

2013年11月12日 星期二

Asp.net MVC 必裝NuGet套件Elmah(16)

先廢話一下
今天不是實作了,完成前面幾項功能其實就差不多可以做出一個基本網站了
但這樣還不夠尤其實是錯誤訊息相當重要
因為程式總是會有例外
所以必需靠這些訊息來判斷那裡有問

安裝NuGet套件方式 點我前往
相關教學 點我前往
點我前往
其實就幾個重點
1.elmah.mvc.route最好設定不要使用預設
2.如果開啟遠端如下,一定要設定elmah.mvc.requiresAuthentication
  <elmah>
    <security allowRemoteAccess="1" />
  </elmah>
3.以下是幾個設定在相關教學裡有保哥說的很詳細
  <appSettings>   
     <add key="elmah.mvc.disableHandler" value="false" />
    <add key="elmah.mvc.disableHandleErrorFilter" value="false" />
    <add key="elmah.mvc.requiresAuthentication" value="true" />
    <add key="elmah.mvc.allowedRoles" value="*" />
    <add key="elmah.mvc.route" value="errorelmah" />
</appSettings>
參考網址
點我前往
點我前往