2012年6月30日 星期六

防止重複 Submit 備忘紀錄

參考人神文章的,簡單卻很實用。
跨瀏覽器筆記-Submit鈕Click事件設定disabled的行為差異






<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.js"></script>

    <script>

        $(function () {

            $("#form1").submit(function () {

                $("#lblMsg").text("處理中,請稍候...");

                $("#Button1").prop("disabled", true);

                /*$("#btnSend").prop("disabled", true);*/

            });

        });

    </script>

</head>

<body>

    <form id="form1" runat="server">   

    <asp:Button ID="Button1" runat="server" Text="Button" />

    <%--<input type="submit" id="btnSend" value="Send" />--%>

    <span id="lblMsg"></span>

    </form>

</body>

</html>

 

2012年6月24日 星期日

數學不好的時候使用While迴圈吧






總之遊戲規則是這樣的

1.每頁一定要有HEADER

2.FOOTER只要最後一頁出現

3.除內容行外不允許跨頁

 

 

假設一頁20行

HEADER和FOOTER各需5行

如果內容行小於10需要一頁,FOOTER在第一頁

如果內容行大於10小於15,需要兩頁,第二頁只有HEADER和FOOTER沒有內容行

如果內容行大於15小於25,需要兩頁,FOOTER在第二頁

如果內容行大於25小於30,需要三頁,第三頁只有HEADER和FOOTER沒有內容行

如果內容行大於30小於40,需要三頁,FOOTER在第三頁

好吧有點饒舌看圖

 

 

問內容X行時,迴圈要怎麼寫?

 

 

這時候就會開始找紙筆還是敲計算機把公式生出來然後FOR迴圈加1減1加X減X取商數餘數之類的弄半天

尼瑪,林北數學爛到爆,這下杯具了

 

 

試試While迴圈吧

管他什麼10 15 25 30

只需要知道

1.這頁內容結束沒,如果沒結束就換頁

2.結束時那頁有沒有內容,如果有又超過10行的話再加一頁

 

 

 

 

結果8連彈

2012年6月10日 星期日

生死格鬥之浪打委派 第一彈 List Sort()、Find()、FindAll()、Exist() 豬走路範例






回憶起我們小時候~ 第一次見到List

閉上眼睛就能感受~ 哇太神啦 不用設大小的伸縮陣列

在我們心中慢慢流動的溫柔~ Array 神馬的再也不用了

 

但是很快的我就發現我對這個新夥計還不夠了解

因為我竟然不會用

List.Sort() → 排序T

List.Find() → 找出一個T

List.FindAll() →找出多個T

List.Exist() →判斷T是否存在

這幾個神奇方法

直到我參拜了前輩的文章

[ASP.NET]利用List的Sort()、Find()、FindAll()、Exist()來解決一些問題

我就像草叢倫看到蠻三刀旋風斬的時候一般,大嘆:神技術,我來試試

果然我還只是個2B,頂多依樣畫葫蘆的假裝會用,實際上在搞什麼鬼還是有看沒懂

老師跟我說:沒關係你還小還不懂,長大就會懂了。

那什麼時候長大呢?

沒錯,現在就長大了。

 

 

 

 

老師的範例其實寫得很明白了,但是為什麼我還是看不懂呢,很簡單,就是這範例還太高檔了,不是當時豬腦的我可以理解的

我們降一個檔次直接用最常用的List<int>保證果斷明白

 

 

 

 

考試囉,如果有好好聽課的話,下面的題目超簡單的

 

 

 

 

神馬?你說沒介紹Sort()、Find()、FindAll()?

不是說了是豬走路範例了嗎,看過一個就應該會走路了

2012年6月9日 星期六

Win8 + Visual Studio 2012 之旅 之一






開機完第一個畫面,看似平板的開始頁面,襲承自WP7的動態磚,概念是自動提供訊息給使用者,而非使用者去找訊息,但是真相是我想開個記事本都找了半天,下圖的記事本是經過一番波折才釘選在首頁的

按下左下角的桌面又會回到像WIN7的介面,但是開始圈圈不見鳥,要開程式還是得用那個難用的開始頁面

當機會賣萌,給你個表情文字:(

Visual Studio 2012變成這鳥樣子,有人說這個就跟程式設計師一樣,過著慘淡灰白的日子

.NET4.5?? MVC4?? 我都不會耶,我就像吃了慚愧棒棒糖一樣慚愧

方案總管換ICO不是很習慣,預設使用.NET4.5跟HTML5,等等我怎麼貌似看到像是 MVC 語法的鬼東西

預設的網站專案跑起來長這樣,還滿漂亮的,右下角看到社群網站入侵的Mark

2012年6月8日 星期五

自修練功 大雜燴 翻寫 VB 版






詳情參照上篇

自修練功 大雜燴 委派 x 多層式架構 x 介面

UI

定番 華而不實 五專案

IAccessType.vb

Form1.vb

TSQL.vb

TypedDataSet.vb

LINQ.vb

專案檔 資料庫依舊是偉大的北風

LINQ x 浪打 x VB + CS

吃飽太閒 把之前的練習 翻寫成VB

結果卡關在 classlibrary 中使用 connectionStrings

怎麼寫都是 Null Reference

查了一下 發現比想像中麻煩 算了 先擱著

反倒是VB LINQ 的浪打被我胡亂try出寫法 好爽

這種 集抽象 極簡 於一身 令人蛋疼又糾結的寫法 我最愛了

哪天有閒 再把各種查詢方式玩一遍吧

C#

VB.NET

2012年6月3日 星期日

自修練功 大雜燴 委派 x 多層式架構 x 介面






如果只是想要打發笅剋扈速度交差了事的話,下面可以都不用看

如果跟我一樣無聊,沒事喜歡亂搞實驗的話就看吧。

 

 

 

 

基本上就是把最近學摸索的委派(還在持續摸索中)跟偉大的願景 - 寫一個多層架構的 符合物件導向概念的 偉大的應用程式 做結合

偉大的願景就跟崇高的理想一樣,輕易的就會被現實的專案時程打敗

但是對於一個燃燒摳頂小宇宙的PG來說,它還是散發著耀眼的光芒

以上廢話

 

 

 

 

UI很簡單長這樣

有五個專案看起來很強大,實際上不會有人這麼幹,但是可以作夢當作不同團隊開發各自的專案再整合

DatabaseAccessLayer 的 介面 IAccessType 定義所有資料存取的方法

類別 TSQL、TypedDataSet、LINQ 都繼承 IAccessType 各自所屬一個專案

這裡可以做夢當作不同團隊都用不同的方式存取資料庫,但是都必須遵守 介面 IAccessType 實作所有屬性方法事件

在程式需要存取資料庫的時候透過 繼承 IAccessType 的物件,來叫用方法取得資料

只是這次的練習很簡陋,所以沒有邏輯層

這次另一個練習重點是委派,分別使用了3種不同的委派寫法

radioButton的選擇決定使用何種委派方法,進而建立負責存取資料庫的物件的實例

或許這看起來很多此一舉,直接在判斷後面把類別指定給物件就好了,根本不必這麼麻煩

這裡可以做夢假設切換的條件是未知的,在某些特殊的情況下才切換,且發生的時機未知而不固定

由於未知且不定,很難明確的靠判斷式來取得實例,因為如果要判斷的條件本身不存在的話,就必須先判斷存在再判斷條件,將會十分複雜

另外委派的幾個好處:

1.當條件發生時再叫用方法

2.對不同狀況只要叫用不同方法即可,只要叫用的方法具有相同的簽名

3.易於擴充及維護(※物件導向概念的精隨)

為什麼易於擴充及維護呢?

舉例來說假如我很神真的全部用判斷式來搞定

但是再怎麼神我要判斷一種模式,勢必要寫一個 if

如果之後多了一種模式,我就必須再加一個 if

這個判斷式會長大!而且會越來越可怕,因為他們彼此間還可能互相關聯高耦合

如果我還沒有封裝這個判斷式,整個程式裡充斥著無數個這種判斷式,恩...你知道的

但是用委派則不必煩惱,面對不同狀況只要叫用不同方法

多了一種模式只要多一個新的方法,其他的無需顧慮

這裡我選擇 IEnumerable 來當回傳值,但是其實這對TSQL類TypedDataSet類是不便的,因為DataTable沒有直接轉換成 IEnumerable 的現成方法

這裡我簡單的用了一個結構來轉換資料來符合 IEnumerable

這裡又能做夢了,可以當作新舊系統用不同的存取方式,但是現在面臨整合並存,先定義明確的介面當規則,然後想辦法在新舊系統上實作這個介面,整體就能運行

雖然對某一方而言是多繞遠路多做工,但是我想沒有人會想要重新寫個系統

Form1.cs

TSQ.cs

TypedDataSet.cs

LINQ.cs

專案檔 資料庫是偉大的北風

題外話,師父曾說過,物件導向就是武林神功,入門容易精通難,但是只要你能夠隨便學個一招半式就能夠走遍天下,學八成就能出師授課,學100%就是新世界的神