2015年1月15日 星期四

Angular 分頁

最近又開始使用AngularJS之前有練習過,但沒機會實戰
目前開始建構一個專案主要使用AngularJS
原文網址
show more , prev and next , pager
jsfiddle
show more , prev and next , pager
早上測試一下套用的方式相當簡單一下就套上了分享給大家
加入filter
Angularjs - Pagination appear after search filter

2015年1月14日 星期三

Visual Studio Entity Framework 設定連線字串問題

繼之前連線字串加密問題後
今天使用vs2013開發新增一個ADO .net 實體模型
後來無法自定連線字串
找了一下 有關Entity Framework在程式中給連線字串這篇也遇到同樣的問題
後來與同事討論有幾種改法
1.修改xxx.Context.cs
 public xxxEntities()
   : base("name=xxxEntities")
{
}
把name=xxxEntities改成需要的conectionstring如果有加解密可以寫一個function去呼叫
這樣就沒事了嗎錯!!!
如果model改了剛寫的都白寫了

2.修改xxx.Context.tt
修改範本方式找到以下做修改成需要的
但如果不是很有把握千萬別亂修改
找到如下
public <#=code.Escape(container)#>()
        : base("name=<#=container.Name#>")
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
修改成
 public <#=code.Escape(container)#>()
        : base(你要的function)
    {
<#
if (!loader.IsLazyLoadingEnabled(container))
{
#>
        this.Configuration.LazyLoadingEnabled = false;
<#
}
#>
    }
有更好的解法再等大家提供喔!!

2014年10月31日 星期五

Asp.net 自訂網站相容性檢視

當使用者原系統全部都需開相容性檢視
而您所開發的網站不需開啟時那該怎麼辦
1.抱怨為何他們都需要開
2.他們系統怎麼那麼舊
3.找方法修改web.config
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
      <add name="X-UA-Compatible" value="IE=Edge" />
    </customHeaders>
  </httpProtocol>
</system.webServer>
 
<system.webServer>
  <httpProtocol>
    <customHeaders>
      <clear />
    <add name="X-UA-Compatible" value="IE=EmulateIE7" />   
    </customHeaders>
  </httpProtocol>
</system.webServer>
2015-02-23補充
若在內部網站上面可能沒用,可在had中加入
<meta http-equiv="X-UA-Compatible" content="IE=edge">
參考網站
[ASP.NET]設定開啟或是關閉相容性檢視 【HTML教學】X-UA-Compatible設置IE兼容模式

2014年10月30日 星期四

Javascript 三位一撇

懶的再改程式了,所以想直接在前端攪定
找了一下很快就找到了
       function moneyFormat(str) {
            if (str.length <= 3) {
                return str;
            }
            else {
                return moneyFormat(str.substr(0, str.length - 3)) + "," + (str.substr(str.length - 3));
            }
        } 
2020-12-23補
 
    //三位一撇
    function three(num) {
        const parts = num.toString().split('.');
        parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
        return parts.join('.');// '$' +
    }
 
參考網址
avascript 數字字串三位一撇

2014年10月23日 星期四

Javascript 正規表示法

之前web from時代都是用c#功能來做
網路上能找到一堆已經寫好的表示法如驗證身份證...
所以也只是照著copy沒有很懂
最近開始用比較前端的方式去開發程式
所以JS變的特別重要
看了兩篇文章後發覺好像懂了正規表達如何寫了
以下圖片來自正規表示法圖說

以上備忘改天比較好查
參考網址
正規表示法圖說

2014年10月2日 星期四

Bootstrap ColorSelector for Bootstrap

很少使用colorpicker,找了許多jquery的UI有點麻煩
有的有圈圈看起來很酷,但很占畫面空間
於是找了一個超簡單的ColorSelector for Bootstrap

2014年9月30日 星期二

c# Entity Framework ConnectionString 不支援關鍵字: 'data source'。

時代在進步從ado到Entity Framework
不變的都是有connection string 只是寫法不一樣
今天問題的發生點是公司"希望"connection string 需要加密
以下為EF的conn我想大部份的人憑空也寫不出來吧當然咪兔
原本使用工具產生的connectionstring
metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&Quot;Data Source=192.168.1.1;initial catalog=test;user id=sa;password=1234;multipleactiveresultsets=True;App=EntityFramework&Quot;
寫一個function
  public static string getEntitiesConn()
        {
            string test = CodeClass.Decrypt(System.Configuration.ConfigurationManager.ConnectionStrings["testEntities"].ToString());
            return test;
        }
解密出來
metadata=res://*/Models.Model.csdl|res://*/Models.Model.ssdl|res://*/Models.Model.msl;provider=System.Data.SqlClient;provider connection string=&Quot;Data Source=192.168.1.1;initial catalog=test;user id=sa;password=1234;multipleactiveresultsets=True;App=EntityFramework&Quot;
看起來一樣吧
testEntities db = new testEntities(Conn.getEntitiesConn());
不支援關鍵字: 'data source'。
是那裡有問題阿仔細一下 &Quot;這東西不就是雙引號嗎
後來把要加密的connectionstring裡的 &Quot;改成雙引號再加密讀出來就OK有沒有那麼神阿@@
在此記錄一下希望以後類似問題能不被卡住

2014年9月26日 星期五

Google Map V3以地址或經偉度抓取Json資料

之前有寫一個類似目前位置到公司所在地的網頁
雖然後來沒正試上線,所以程式碼就凍結在備份碟中
昨日拿出來看了一下有點看不懂了哈,花一點時間才了解
一開始先不直接使用地圖,先抓目前所提供的API 地理編碼&反向地理編碼
只需使用連結就能取回json資料相當方便
地理編碼
http://maps.googleapis.com/maps/api/geocode/json?address=地址&sensor=true_or_false
反向地理編碼
http://maps.googleapis.com/maps/api/geocode/json?latlng=經,緯&sensor=true_or_false
參考網址: 點我前往

2014年8月27日 星期三

jQuery 如何判斷選擇的物件在不在

通常都會先把jQuery每個物件的功能都寫好
但有時在asp.net webform visable = false時就會找不到物件
因為dom裡並沒有所以要判斷一下物件是否存在
var aTag = $('#abc');
if (!aTag.length)
    return;
參考網址
點我前往

2014年8月20日 星期三

jQuery Table Scroll freeze

一整天都測試凍結視窗
試了快六種但都不太好套
StickyTableHeaders這個算不錯但不能凍結column
目前找到最好用的gridviewscroll使用簡單

2014年7月14日 星期一

jQuery window.opener寫法

相信跨頁傳值或控制父頁的元件都是用
window.opener.getElementById("abc").value  = 'abc';
那用jQeury怎麼做??
$('#abc', opener.document).attr("value",txt);
參考網址 點我前往

2014年7月9日 星期三

Bootstrap cannot call methods on button prior to initialization

在Bootstrap中使用button地'load'功能
btn.button('loading');
發生下列問題
cannot call methods on button prior to initialization
網路查了一下,主要是jQuery UI的js檔錯誤,
檢查一下jquery ui的js是不是放於bootstrap的js上面

2014年7月3日 星期四

c# Parameters.AddWithValue DBNull

在Inser or Update時難免遇到的問題
第一個想法會寫個function來判斷DBNull 或是文字
或者是用三元運算子
今天看到更短的寫法順便學一下
cmd.Parameters.AddWithValue("@abc", (object)item.abc ?? DBNull.Value);
參考網址
cmd.Parameters.AddWithValue("@param1",param1 ?? DbNull.Value)

2014年6月26日 星期四

jQueryUI Autocomplete Combobox 修改寬度

jQuery UI 點我進入
找了很多方法居然都改不了
結果只到最簡單的方式才能改
$('.ui-autocomplete-input').css('width', '90%');
參考網址
How to set the width of jQuery ComboBoxes

2014年6月9日 星期一

Visual Studio 2013 Express 只有原始檔無設計

雖然html有些跟本不需看設計畫面
但有些原件必需要看設計畫面才知道怎麼做
工具 > 選項 > HTML設計工具 > 啟用HTML設計工具

參考網址
點我前往

2014年5月28日 星期三

Asp.net MVC Html.ActionLink & Url.Action https(SSL)(18)

記錄一下摟
@Html.ActionLink("關於", "About", "Home", "https", "", "", new { id = "1" ,test="000"}, new { @class="abc"})
@Url.Action("About","Home",null,"https","")

jQuery 將網頁導到https(SSL)

最近都在架構的網站都會走SSL
所以記來以後來會用到
  
        $(function () {
            if (window.location.protocol != "https:") {
                var sslUrl = location.href.replace(/^http/i, "https");
                window.location.href = sslUrl;
                return;
            }
        });
 
參考網站
Detect HTTP or HTTPS then force HTTPS in JavaScript

IIS 免費SSL(StartSSL)

以下兩篇保哥的文章已經算超詳細了
我也是看這兩篇就攪定摟感謝保哥
免費申請 StartSSL™ 個人數位簽章與網站 SSL 憑證完全攻略
如何在 IIS7 / IIS7.5 安裝 SSL 憑證(含 IIS7 匯入憑證的 Bug)

2014年5月12日 星期一

Javascript 呼叫c#function

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click"></asp:LinkButton>
 javascript: __doPostBack('<%= LinkButton1.UniqueID %>', '');
參考網址
jQuery call __doPostBack on LinkButton

2014年5月9日 星期五

c# 遮罩電話 xxx

這function效能非最佳只不過目前剛好用到
所以隨手寫了一下
如有更好的方式可提供喔謝謝!!
   /// <summary>
        /// 遮罩電話 (十個字 手機市話)(九個字 市話)(十個字以上前四後三)(四個字以下回傳空白)
        /// </summary>
        /// <param name="pStr">字串</param>    
        /// <returns>string</returns>
        public static string MaskString(string pStr)
        {
            string mReturn = "";

            if (pStr.Length == 9 && pStr.StartsWith("0")) //9碼的如高雄
            {
                mReturn = pStr.Substring(0,2) + "-XXX-" + pStr.Substring(5,4);
            }
            else if (pStr.Length == 10 && pStr.StartsWith("09"))//手機
            {             

                mReturn = pStr.Substring(0, 4) + "-XXX-" + pStr.Substring(7, 3);

            }
            else if (pStr.Length == 10 && pStr.StartsWith("0"))//台北市話
            {
                mReturn = pStr.Substring(0, 2) + "-XXXX-" + pStr.Substring(6, 4);
            }
            else
            {
                if (pStr.Length > 10)//十個字以上
                {
                    for (int i = 0; i < pStr.Length ; i++)
                    {
                        if ((i == 0 || i <= 3) || (i >= pStr.Length - 3)) //前四個字 後三個字出現
                        {
                            mReturn += pStr.Substring(i,  1);
                        }
                        else
                        {
                            mReturn += "X";
                        
                        }
                    }                   
                }
                else  if(pStr.Length >= 4)//四個字以上才會做
                {
                    for (int i = 0; i < pStr.Length; i++)
                    {
                        if (i >= pStr.Length - 3) //後三個字出現
                        {
                            mReturn += pStr.Substring(i, 1);
                        }
                        else
                        {
                            mReturn += "X";
                        }
                    }
                }            
            }
            return mReturn;
        }