2012年12月26日 星期三

{正則式} 參考文件

js版本
http://msdn.microsoft.com/zh-cn/library/az24scfc.aspx

.net 版本
http://msdn.microsoft.com/zh-tw/library/20bw873z.aspx


範例(特殊字元過濾)
http://blog.miniasp.com/post/2010/04/27/How-to-filter-special-characters-using-NET-Regex.aspx

相關資源:
http://blog.miniasp.com/post/2008/03/Regular-Expression-Regex-Learning-Resources.aspx

eMail 正則式:
http://design2u.me/blog/896/javascri-t-regular-expression-email-form-validation

測試工具:
Expresso 3.0 上網註冊免費序號
否則只有5天又12小時可使用

2012年12月20日 星期四

{C#.JavaScript} HtmlEncode Htmldecode 寫法

將字串、連結做編碼、解碼寫法
JavaScript:
//Encode
var abc="this is a book";
var encode = escape(abc);

//Decode
var abc="this is a book";

var encode = unescape(abc);


C# 寫法於參考資料

參考資料:
http://blog.miniasp.com/post/2008/11/Explain-web-related-encoding-decoding-method-in-detail.aspx

{C#} Transaction-Entity(未實作)


參考資訊
http://blog.darkthread.net/post-2012-12-19-transactionscope-suppress.aspx

2012年12月19日 星期三

{JQuery} dialog 顯示「正在....」畫面


$(document).ready(function () {
            $("#dialog:ui-dialog").dialog("destroy");
    $('#Button1').click(function () {

        var dlg = $("#<%=DivPage.ClientID%>").dialog({
                            modal: true,
                            height: 200,
                            width: 400
                       });
                        $('a.ui-dialog-titlebar-close').hide();
                        $("#<%=DivPage.ClientID%>").dialog("open");
                       dlg.parent().appendTo(jQuery("form:first"));
                       $("#dialog:ui-dialog").dialog("destroy");
    });
    //當程序運作完成時,關閉
    $('#Button2').click(function () {
        $("#<%=DivUploadIframePage.ClientID%>").dialog("close");
    });
});


<form>
<body>

 <div runat="server" id="DivPage" title="Please Wait..." style="width: 260px;
        height: 400px; display: none">
        <table width="100%" class="f12black">
            <tr>
                <td align="center">
                    正在加載中,請稍後...<br />
                </td>
            </tr>
        </table>
    </div>
</body>
</form>


API:
http://api.jqueryui.com/dialog/#option-buttons

2012年12月6日 星期四

{C#} Transaction-Linq


//此例可直接運用 context.SubmitChanges();自動執行Transaction,
此側僅供自訂Transaction code參考用

using (var context = new ServiceDataContext())
            {
                try
                {
                    context.Connection.Open();
                    context.Transaction = context.Connection.BeginTransaction();
                    var query = context.tableA.Where(s => s.DocId == DocId).ToList();
                    if (query.Count > 0)
                    {
                        context.tableA.DeleteAllOnSubmit(query);
                        context.SubmitChanges();
                    }
                    context.tableA.InsertOnSubmit(pNewItemA);
                    context.SubmitChanges();

                    var queryTT = context.tableB.Where(s => s.DocId ==DocId).ToList();
                    if (queryTT.Count > 0)
                    {
                        context.tableB.DeleteAllOnSubmit(queryTT);
                        context.SubmitChanges();
                    }
                    context.tableB.InsertOnSubmit(pNewItemB);
                    context.SubmitChanges();
                    context.Transaction.Commit();
                    return "Successful";
                }
                catch (Exception ex)
                {
                    context.Transaction.Rollback();
                    return ex.Message;
                }
            }

註記:
1.Linq2SQL will use an implicit transaction. If all of your updates are done within a single Submit, you may not need to handle the transaction yourself.
當只執行一SubmitChanges()時,會自動啟動Transaction 機制
故如非同一context 時,才需自訂Transaction



參考資料:
http://blog.darkthread.net/blogs/darkthreadtw/archive/2009/06/12/3037.aspx
http://stackoverflow.com/questions/542525/transactionscope-vs-transaction-in-linq-to-sql
http://72.15.222.47/post-2008-05-14-transaction-in-linq-to-sql.aspx

//Update之Transaction  相關
http://72.15.222.47/post-2009-07-14-linq-to-sql-research1.aspx
http://blog.miniasp.com/post/2008/05/Resolve-LINQ-to-SQL-Change-Conflict-Exception.aspx

{JavaScript} 取代多個字符、控制項中游標位置、日期轉換


 function RemoveFormate(num) {
        //取代多個逗號
        var str = /,/gi;
        return num.replace(str, '').replace('.00', '');
    }

    //要游標出現的字串位置--傳入控制項內字串中所要放的位置
    function startFocus(range) {
        var e = event.srcElement;
        var r = e.createTextRange();
        r.moveStart("character", e.value.length);
        r.collapse(true);
        r.select();
    }
//Example:

//游標停的位子在字串最後面
startFocus($(this).val().length);


    //日期轉換
    function TransferDateFormate(dateString) {
        if (dateString != null) {
            if (dateString.indexOf("/Date") == -1 && dateString.indexOf("/") == -1) {
                var dateFormate = dateString.substring(0, 4) + "/" + dateString.substring(4, 6) + "/" + dateString.substring(6, 8);
                return dateFormate;
            } else if (dateString.indexOf("/Date") != -1) {
                var date = eval("(new Date(" + dateString.replace("/Date(", "").replace(")/", "") + "))");
                var dateFormate = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate();
                if (dateFormate == "1/1/1") dateFormate = "N/A"
                return dateFormate;
            }
            return dateString;

        }

        return '';
    }

參考資料:
http://www.cnblogs.com/taobox/archive/2012/11/23/2784760.html

{JavaScript} 小數位補零、檢查是否為數值、四捨五入


//小數位不足自動補零
    function showAsFloat(n) {
        return parseFloat(n).toFixed(2);
    }

    //檢查是否是數字
    function checkFormate(num) {
        num = num + "";
        //去掉一個小數點(如有二個小數點也會出現警示
        num = num.replace('.', '');
        //只能输入有0~2位小数的正实数
        //        var re = /^[0-9]+(.[0-9]{0,2})?$/;
        if (num != '') {
            //無限制小數數量
            var re = /^[0-9]+(.[0-9])?$/;
            if (!re.test(num) || num < 0) {
                return false;
            }
        }
        return true;
    }

    //四捨五入
    function round(num, pos) {
        var size = Math.pow(10, pos);
        return Math.round(num * size) / size;
    }

參考資料:
正則式:http://www.dotblogs.com.tw/killysss/archive/2009/11/18/12039.aspx

{JavaScript} JS控制控制項Enable、Visible


// Visible 不顯示(不出現在Html中)    
 if ($('#<%=select.ClientID%>').find("option:selected").val() != '我選了')
    $('#<%=trCPSDMailNotice.ClientID%>').attr('style', 'display:none');
//出現
 else
    $('#<%=trCPSDMailNotice.ClientID%>').attr('style', 'display:');

//Enable  顯示但不可用
 if (!$('#<%=chkBoth.ClientID%>')[0].checked)
    $('#<%=txtMyFare.ClientID%>').attr('disabled', 'disabled');
//顯示且可用
else
    $('#<%=txtMyFare.ClientID%>').removeAttr('disabled');