2009年4月21日 星期二

ASPNET C# checkbox 全選、取消


首先要在aspx前台 用onclick 來呼叫 javascript


把這段放在的下面即可呼叫javascript

程式範例

ASPNET C# 利用javascript產生光棒效果

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default6 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int i;
//執行旋環,保證每條資料料都可以更新
for (i = -1; i < GridView1.Rows.Count; i++)
{
//首先判断是否是資料行
if (e.Row.RowType == DataControlRowType.DataRow)
{
//當滑鼠停留時更改背景色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#00A9FF'");
//當滑鼠移動後還原背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
}
}
}

}

ASPNET C#-呼叫副程式

Default3.aspx.cs 程式碼如下
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
e myCSharpObject = new e();//建立新物件
Label1.Text = myCSharpObject.t(); //呼叫物件
}

}
------------------------------------------------------------------------
App_Code/Class1.cs 程式碼如下
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public class e
{
public string t()
{
return "呼叫副程式成功!";//在此加入建構函式的程式碼
}
}

線上餐廳訂位市場夯 「一訂ok網」上線搶商機

線上餐廳訂位系統的商機備受看好,繼台灣第一家線上餐廳訂位網站「易訂網」(http://www.eztable.com.tw/index.php)

之後又有一家名為「一訂ok網」(http://www.dingok.com.tw/DingOkHome.aspx)

的線上餐廳訂位網站搶進這個市場,並且打出會員紅利積點換百貨公司禮券的好康優惠,要吸引網友們上網搶訂位。

「一訂ok網」是由一訂科技股份有限公司於去年八月成立,網站於今年三月才上線,根據一訂ok網行銷專員張曼殷表示,至今網站才上線一個多月卻已經有3000名左右的會員人數,讓他們相當感到驚喜。

張曼殷表示,網站本來主要是以美食網站瀏覽為主,後來希望整合美食與餐廳訂位,因此開始研發線上訂位系統,目前「一訂ok網」內含有2100間的餐廳資料,而與其配合有線上訂位系統的餐廳有50家左右,包括:澳美客牛排、天外天火鍋店、小銅板牛排、焱sonoma、京星港式飲茶,及藝人柳瀚雅的大福等都能讓會員線上訂位。

當然要吸引會員線上訂位必定要打出優惠折扣,目前只要透過「一訂ok網」線上訂位的餐廳都享有九折優惠。另外,該網站近期也與小銅板牛排合作,只要在4月27日到4月30日之間加入會員並線上訂位成功,就可享有用餐五折的好康活動。「一訂ok網」更針對會員推出紅利積點功能,每透過該站的線上訂位系統訂位一次就可獲得50點,而積滿300點就可以兌換100元的禮券,包括可選擇SOGO禮券、新光三越禮券、金石堂禮券或家樂福的提貨券等擇其一。

相較於另一間線上餐廳訂位網站「易訂網」,目前與「易訂網」配合的餐廳有多達180多家業者,並有大型知名五星級飯店的配合,像是喜來登飯店、晶華酒店、君悅飯店等的加持,讓「易訂網」在線上餐廳訂位市場裡打下優良的底子。不過後來搶進市場的「一訂ok網」目前也與許多不錯或特殊的餐廳配合,包括香檳夜店以及許多高檔餐廳,例如一位難求的鼎泰豐忠孝店就只開放每天中午十二點及晚上六點的兩個預約時段,並且一個時段也只提供限量四位的預訂名額。

在不景氣的時代裡,許多網路應用不但可以為消費者省荷包,還可以為店家與網路創業者帶來新商機。也許是看到美國擁有身價上億,又可望是今年第一家IPO的網路公司「Open Table」,其在線上訂位網站上的成功,也使得台灣線上餐廳訂位系統的市場被許多新創網路公司看好而搶進。

2009年4月14日 星期二

該學習 C# 或 VB.NET ?

學習 .NET 的人裡面,有不少人是想寫 Win Form 或 Web Form , 如果您也是這類的初學者或許您不知道該學 VB.NET 或 C#, 我的意見是學習 C#

學習 .NET 的人裡面,有不少人是想寫 Win Form 或 Web Form , 如果您也是這類的初學者或許您不知道該學 VB.NET 或 C#, 我的意見是學習 C#, 原因如下:

我以前是學Basic, VBA, VB6, VBScript(ASP), 看的書都是這類的, 別類語言的書籍並不會去看, 但其實有些書是用 Java, C, C++等語言做範例,但對程式開發都極為有用(例如資料結構,物件導向,設計模式,泛型,軟體開發理論), 如果您懂C#, 看這類書就比較沒有困難了(因為語法有些相似,所以閱讀上沒什麼問題)

VB.NET, C# 能寫出來的程式,理論上是差不多的, 如果您是Java, C++高手, 相信買本VB.NET入門語法書,熟悉語法及.NET Framework 就可以用VB.NET寫出相當好的系統了, 但如果您跟我相同都只會Basic,或者根本是初學者, 那麼只看市面上的VB.NET 入門書並無法讓您程度有所提升, 但C#入門書裡,不少書籍都對類別,介面,繼承等語法做了較深入的說明, 因此入門者學習C#反而有機會學得比較好, 等到比較熟悉物件的基本用法,再去買上述第一點提的書,能力便比較容易提升

當您學習C#,VB.NET語法,並且對於物件,繼承,介面,封裝等知識有了了解之後,之後在學習.NET Frameowrk時都會有不小的幫助,但我個人認為入門者學習C#,才比較有機會打好這個基礎, 您不妨也仔細觀察身邊的朋友,看看有多少人是在沒學好 C,C++或Java之一,而他在只學會VB.NET後,能力居然很好的,我想這種人比例應該是不高的

如果您不小心考上了資訊科系,老師也只教VB.NET,為了交份期末作業,那麼您可以直接學VB.NET, 如果您想投入職場,而且不想永遠只是被指派寫點簡單的小程式, 我建議您利用學習C#來打好基礎, 等基礎打好了,即使公司規定只能寫VB.NET,我相信您屆時再多花1,2星期熟悉一下VB.NET 語法後, 寫出來的程式就會很優秀了
如果您想學習.NET只是為了開發Win Form, Web Form,我個人建議您的學習方法應該是

A.學習C# 或 VB.NET的基本語法(如果您現在才要學,初學者請不要直接買ASP.NET入門書來學,很容易變成VB.NET/C# 語法不熟的半吊子, 應該去買整本只專門介紹 VB.NET / C# 語法的書)

B.學會如何用C#,VB.NET撰寫簡單的function, class, method, property(這也是 .net 語法入門書要教的內容)

C.學習.NET Framewrok中常用到的class,例如存取資料庫,存取檔案,操控XML,ArrayList, Hashtable等物件(這也是 .net 語法入門書要教的內容)

在完成第 5 點的學習,熟悉控制項之後呢? 我覺得應該期許自己朝規劃系統架構著手, 總不能只是一直停留在撰寫 Button Click, GridView.DataBind() 的程度上, 系統有了良好的架構,會讓您覺得開發系統不再是"做苦工",而將重心放在'規劃'上, 您的系統也會變得比較好擴充, 好維護, 甚至程式碼更短更易閱讀


我的結論是:
1.C# 並不能寫出比 VB.NET 還好的程式, 但學習 C# ,會讓您有機會看得懂別類的書籍
2.C#,VB.NET 入門書相較之下,我個人覺得 C# 中文書在介紹物件的部份, 深入程度是比較夠的
3.只要對物件有一定程度的了解, 在能力提升上,是有一定的幫助的
4.如果您有本事經由學習 VB.NET ,卻仍能對物件導向有正確的了解, 仍然可以學習 VB.NET
5.如果您平凡如我,也沒什麼天份,需要靠書籍來學習, 那麼學 C# 會比 VB.NET 好, 因為好書比較多

物件導向程式設計

物件導向程式設計(Object Orientated Paradigm,OOP)是Java的核心。
實際上,所有Java程式皆是物件導向:跟C++不一樣…

運用物件式的語言(如C++)並無法保證你用物件化的方式來設計:

尤其 C++ 也保留了對 C 語言的支援,所以拿 C++ 來寫 C 也可以,故初學者容易混用。以程序式的方法寫程式時,自以為是以物件導向的方法來寫程式。

那什麼是以物件導向的方法來寫程式呢?以下是紫色幻想喵 大大的例子

物件導向呀…

就像是…

今天如果你想要開車車

那麼,你只要把"開車"這兩個字寫出來,裡面就包括了…

踩油門、開車門、踩殺車、方向燈等等,車子就會跑了~~~~


但如果是非物件導向的話(也就是我說的程序式寫法,也就是C語言寫法)。

你就要重頭寫…

我看到一台車

我開車門

我坐上去

我踩油門…等

一步一步寫~

so~物件導向就像套裝的東西

你要去旅行,買個旅行組就好了,不用牙刷、毛巾…一個個去買(一個個去買是C語言寫法)。

雖然會比較方便,但…

不見得裡面的東西對你而言都是實用的…

也許旅行組裡面有個淋浴乳,但你從來都是用肥皂洗澡,所以…這個你就用不到啦~

物件導向程式設計與程序導向程式設計之差異與比較

物件導向程式設計OOP (Object-Oriented Programming) 是一種近幾年來程式設計的新觀念,它將程式語言要處理的對象看成是一種物件,傳統程式設計以程序導向 (procedure-oriented) 為主,程式的動作過程就好像是電腦執行程式的流程一樣,但是這樣卻和實際上要解決的問題無法緊密結合。

物件導向的程式設計方法,是站在較人性化的觀點來思考、設計程式的邏輯,例如在傳統的程式設計語言中,我們要開啟一個資料庫檔案,通常是撰寫如下列的程式呼叫:『開啟檔案(資料庫)』,而在物件導向語言當中,則是執行下列的程式呼叫:『資料庫.開啟檔案』。

這只是物件導向的一種特性,此外,它還擴充了一般程式語言的功能,例如在C++ 語言當中,我們可定義許多相同名稱的副程式,它們各自執行不同的功能,而不會互相衝突──因為它們是針對不同的物件運作的,這是物件導向當中的『多形』(polymorphism),其它重要的概念還有『封裝』 (encapsulation) 與『繼承』(inheritance),使得程式撰寫可更容易模組化 (modular),也更易於重複使用 (reuse) 軟體元件。一般說來,SmallTalk與Simula兩種程式語言是OOP的始祖,C++、Java、Javascript、Flash Action Script與C# 則是近來OOP的主流。

在現實面上,程序導向和物件導向算是比較一般化的,其中程序導向語言製作的軟體仍然佔有最大的應用市場,也許程序式的運作模型最能被大家接受,最容易隨性地發揮,與現今 von Neuman 架構機器最能夠匹配,也許物件導向的方法太過嚴謹、太過抽象,在這種狀況下真的很難去說服同學說其它沒有被市場廣泛接受的軟體方法中擁有無限的希望,用心、下些苦工去了解他們是不會讓你後悔的;想說得嚴重一點,沒有了解各種軟體方法的話,也許資訊系就白走一遭了,可是也深深地知道市場早已證明,許多的從業人員不需要知道軟體製作的各種奧祕,只要精通程序式/結構化的軟體方法,在工商業界中已經可以無往不利了,真的看不出 von Neuman 型態的計算機模型會很快地消失,會有所謂物件化的硬體模型嗎? 所以真的也不預期程序式的程式製作方法會像史前的恐龍一樣受迫消失。

那麼物件式模組化、與應用領域緊密結合、由下而上 (bottom up) 的軟體製作方法是不是就永遠限於大規模、大成本、複雜、專業的軟體呢? 這些方法會的人少,資源也少,就好像叫好不叫座的電影一樣,讓所有的影評不知道該執著於理想拼命鼓吹呢? 還是順應大眾的口味,大加討伐一番。

上程式設計課程時常常提醒大家用的是 C 語言而不是 C++,就是不喜歡讓同學在使用支援物件導向的語言 (例如 C++) 以程序式的方法製作軟體時,自以為是製作物件式的軟體,運用物件式的語言並無法保證你用物件化的方式來設計、規劃及製作軟體, (另一方面,運用不支援物件導向的語言寫的軟體仍然可以基於物件導向的方法來設計,只是程式設計者所要遵循的規則無法由編譯器來幫你檢查,而必須由程式設計者自己來實現,) 學習物件導向的軟體設計方法可以讓大家領略軟體製作時工程式的嚴謹過程,了解軟體中物件系統紮實可重用的根基。

使用 VB 設計視窗環境應用程式的軟體工作者很明顯地比使用 C++/MFC 來設計視窗環境應用程式的工程師多太多了,由表象上來分析,使用者多的軟體發展環境資源多、可以諮詢的人也多,要完成計劃的阻礙比較低,當然吸引更多的人來投入。很沮喪地說,我幾乎找不到用 VB 寫不出來的視窗應用程式, (講這句話時有一點像是說沒有用 Assembly 寫不出來的程式一樣),如果為了安慰自己而說某些系統的應用為了配合作業系統還是需要用 C/C++ 的話,那微軟還有 COM/ActiveX 的技術可以讓 VB 的應用程式設計者輕鬆地運用 C/C++ 程式設計者的產品,那為什麼要 C++/MFC??? 不會說是寫系統核心才用得到吧,那你我什麼時候才寫得到系統核心呢?

由設計軟體的方法來比較, VB 是架構在 Basic 這種型態並非非常嚴謹的程序式語言上,先天上就有容易學習的優點,製作時不需要做嚴謹的分析設計圖,撰寫程式碼時不需嚴謹地訂定界面,維護封裝,入門的門檻明顯地比 C++/物件導向的程式製作方法要低得多。由另一個角度來看,大多數人在使用 VB 來設計應用系統時應該都是由界面物件開始設計,也就是應用 VB 表單編輯器來設計人與機器間的界面,然後再應用事件驅動的視窗程式運作模型逐一填入各個界面所引發的程式動作,這是非常功能性的 top-down 程式設計, (因為用到了許多界面物件,又用到了事件驅動的概念,所以許多人覺得 VB 也是物件導向了,這是很大的誤會,大多數程式設計師在設計 VB 的程式時可能對 "快速地完成設計" 要比 "完整的分析目標系統的運作與組成" 要注重得多,物件系統中抽象化的功能物件恐怕更不是考慮的重點,沒有這些基本考量的程式決不會是物件導向的,物件導向的四大特性甚至都還沒有包含 "事件驅動" 呢。) VB 程式的設計方法可以說是由外而內的, (在設計使用者界面的雛型時相信是一個很有用的工具),反觀使用 C++/MFC 來設計物件式系統時,通常不會由使用者界面著手,一般是由應用領域中系統運作來開始分析,所分析設計出來的物件不見得是人機界面的物件,而是運作系統中的物件,例如在進出貨管理系統中,實體貨物都有其相對應的軟體物件,儲存/載運/處理實體貨物的機制中,所有的資料、人員也都是系統中的物件,實體機制中所有的動作都在軟體系統中模擬為物件的互動,這些物件構成了軟體系統的核心機制,其中軟體物件和人員之間的界面也就是人機的界面,通常會抽離出來由使用者的角度進一步地設計合理美觀的互動機制,這種設計方式比較是由內而外的,通常可以先使核心軟體模型完全地符合應用環境來運作,然後再替這個系統架構人機間的視窗圖形化界面。

2009年4月13日 星期一

C# 與 VB.NET程式碼互轉

很多人在網路上找相關的參考資料,都會遇到一個問題,那就是:【我是學VB.NET的,C#的程式碼看不懂。】或者【我是學C#,VB.NET寫的內容我看不懂。】其實這是很可惜的,因為您對於C#或者VB.NET的不熟悉,可能跳過可以解決問題的方法。

其實網路上有很多的資源,可以幫C# 與 VB.NET 的程式碼互轉。當然,不見得所有的轉換後都可以使用,不過經過轉換後,多多少少可以讓自己能夠閱讀別人程式碼。並且試過一個不行,可以再試第二個轉換的服務。

列出幾個提供線上轉換服務的網址

有需要的可以去試試看

更多的資源可以自己到Google去搜尋【C# 轉 VB.NET】這樣的關鍵字

http://www.developerfusion.com/tools/convert/csharp-to-vb/

http://www.kamalpatel.net/ConvertCSharp2VB.aspx

http://www.dotnetspider.com/convert/Csharp-To-Vb.aspx

以上資訊提供大家參考