- 濾心、濾心、濾心;不要被五花八門的名詞嚇到,重點還是在濾心。
- 濾心的壽命;這是除了淨水器外一筆長期支出,所以也是要好好考慮。
- 選擇合適的過濾方式。
但我一直找不到「台灣各地水質」的資料,讓我想要了解一下現在居住地區水品質,再來參考購買那種過濾器,這是唯一我無法進行的地方。
結論:
有錢就買好一點;沒錢就買差一點。(凸)
參考:
淨水方法比較
如何選擇淨水器?
註:如果各位想走技術這條路且經濟許可,去「電腦補習班」、「英文補習班」我個人覺得是個不錯選擇,學校在科目的時間不夠集中,例如一門CCNA課程,要花二~四學期,太久了。好好利用課餘或假期,去電腦補習班幾個月就搞定了。不管是技術或語言,專精一項目,集中時間大量練習,是快速提升的不二法門。
Function Blog(date, time){ this.date = date; this.time = time; } Blog.prototype.sign = 'Bruce';
if (me.today == me.yesterday) me.tomorrow = null;
賴榮樞的工作經歷
這是我們資訊界一位老前輩多年來資歷,發表日期是4/9日星期五早上凌晨,為什麼我知道是凌晨,因為我還在準備資料,我睡不到幾個給小時早上五點半就又醒來準備,所以我很清礎,我也怕,我怕誤了大家。
1, 4, 36, 54, 5 (請先選擇)
1% 優渥4% 積蓄36% 死亡54% 救濟5% 零工、流浪、乞討
四技部課程與證照對照表這是多棒的資訊,這可是我們以前沒有的,你們知道這是什麼嗎,這是餅,而且是大餅,學校在一開始就規劃好了完整的地圖給各位,也會按步就班的教各位如何拿到這個餅。
二技部課程與證照對照表
五專部課程與證照對照表
春有百花秋有月,
夏有涼風冬有雪,
若無閒事掛心頭,
便是人間好時節。
宋朝,無門慧開禪師
很多事,說再多聽再多也沒有用,因為你不會有感受,好好的去過你的日子,你的人生。等有一天你通了,了解什麼是「世事洞明皆學問」你已經成功了一半,進而加強提升「人情練達即文章」的層次修為,那你一定可以有個精彩的人生。「世事洞明皆學問,人情練達即文章。」
''' <summary> ''' 建立 GridView 控制項中的資料列時發生。 ''' <summary> ''' <remarks>必須先為控制項中的每個資料列建立 GridViewRow 物件,才能呈現 GridView 控制項。建立 GridView 控制項中的每個資料列時,會引發 RowCreated 事件。</remarks> Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated 'e.Row:取得所建立或繫結(Binding)到資料的資料列。 'e.Row.Cells(i):i是數值,存取資料列的第i個儲存格。 'e.Row.RowType:在執行作業之前判斷資料列的型別。 '範例:http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.gridview.rowcreated%28v=VS.80%29.aspx End Sub
''' <summary> ''' 按一下 GridView 控制項中的按鈕時發生。 ''' </summary> Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand '通常判斷e.CommandName與e.CommandArgument來進行一些額外的事件處理 'e.CommandName有些內建關鍵字,會引發特定行為與事件(http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.gridview.rowcommand%28v=VS.80%29.aspx) 'e.CommandName:取得自訂按鈕命令名稱 'e.CommandArgument:取得自訂按鈕命令引數 'e.CommandSource:存取引發事件的按鈕控制項 '自訂按鈕,命令名稱為"cancelSelected" If e.CommandName = "cancelSelected" Then GridView1.SelectedIndex = -1 End If End Sub
''' <summary> ''' 資料列繫結(Binding)至 GridView 控制項中的資料時發生。 ''' </summary> ''' <remarks>控制項中的每個資料列必須都繫結(Binding)至資料來源中的資料錄,才能呈現 GridView 控制項。資料列 (由 GridViewRow 物件表示) 繫結(Binding)至 GridView 控制項中的資料時,會引發 RowDataBound 事件。這可讓您提供事件處理方法,用於每次發生這個事件時執行自訂常式,例如修改繫結(Binding)至資料列之資料的值。GridViewRowEventArgs 物件會傳遞至事件處理方法,讓您存取正在繫結(Binding)之資料列的屬性。若要存取資料列中的特定儲存格,請使用 GridViewRowEventArgs 物件的 Cells 屬性。您可以使用 RowType 屬性決定繫結(Binding)那種資料列型別 (標頭資料列、資料列等)。</remarks> Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound 'e.Row:取得所建立或繫結(Binding)到資料的資料列。 'e.Row.Cells(i):i是數值,存取資料列的第i個儲存格。 'e.Row.RowType:在執行作業之前判斷資料列的型別。 '1. DataRow:GridView 控制項中的資料列。(常用) '2. Footer:GridView 控制項的頁尾資料列。 '3. Header:GridView 控制項的標頭資料列。 '4. EmptyDataRow:GridView 控制項中的空白資料列。 '5. Pager:GridView 控制項中的頁面巡覽列。 '6. Separator:GridView 控制項中的分隔列。 '如果資料的類型是「資料列DataRow」,第一個儲存格文字改為粗體。 If e.Row.RowType = DataControlRowType.DataRow Then e.Row.Cells(1).Text = "<b>" & e.Row.Cells(1).Text & "</b>" End If End Sub
''' <summary> ''' 按一下資料列的 [刪除] 按鈕時發生 (但在 GridView 控制項刪除資料列之前)。 ''' </summary> Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GridView1.RowDeleting 'e.Keys:取得欲刪除那筆資料的PK值。查看DataKeyNames屬性,就可以知道PK值有那些。 'e.Cancel:Boolean,True表示取消刪除動作。 'e.Values:取得要刪除那筆資料的"欄位值" 'e.RowIndex:目前要刪除這筆資料在GridView中的索引值。注意,Index及PK是不同東西。Index指的是排序順序,另外GridView有啟用分頁,假設每頁10筆,則第2頁第一筆資料的RowIndex是0非10。 If e.Keys("CustomerID") = "ALFKI" Then Response.Write("此資料不能刪除!") e.Cancel = True End If End Sub
''' <summary> ''' 按一下資料列的 [刪除] 按鈕時發生 (但在 GridView 控制項刪除資料列之後)。 ''' </summary> Protected Sub GridView1_RowDeleted(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeletedEventArgs) Handles GridView1.RowDeleted 'e.AffectedRows:刪除筆數。 'e.Keys:取得欲刪除那筆資料的PK值。 'e.Values:取得要刪除那筆資料的"欄位值"。 'e.Exception:若刪除發生例外,可透過e.Exception取得例外相關資訊。 'e.ExceptionHandled:Boolean,當例外發生且e.ExceptionHandled沒有為True時,會值接在網頁上顯示例外的錯誤畫面。 '確認是否有刪除例外發生 If e.Exception Is Nothing Then Response.Write("刪除" & e.AffectedRows & "筆資料:" & e.Keys("CustomerID") & "," & e.Values("CompanyName")) Else '不要產生錯誤畫面 e.ExceptionHandled = True Response.Write(e.Exception.Message) End If End Sub
''' <summary> ''' 按一下資料列的 [編輯] 按鈕時發生 (但在 GridView 控制項進入編輯模式之前)。 ''' </summary> ''' <remarks>RowEdit沒有ed事件(RowEdited),因為進入Edit模式後,是由RowUpdating/RowUpdated接手處理。</remarks> Protected Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing 'e.Cancel:Boolean,True表示取消編輯動作。 'e.NewEditIndex:取得或設定要編輯之資料列的索引。 '按下「編輯」按鈕的這一資料列(e.NewEditIndex)進入編輯模式 GridView1.EditIndex = e.NewEditIndex End Sub
''' <summary> ''' 按一下處於編輯模式之資料列的 [取消] 按鈕時發生 (但在資料列結束編輯模式之前)。 ''' </summary> Protected Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit 'e.Cancel:Boolean,True表示取消編輯模式。 'e.RowIndex:目前要取消這筆資料在GridView中的索引值。 '取消編輯模式 'e.Cancel = True '在VB中「-1」(負1)也有取消的意思 GridView1.EditIndex = -1 End Sub
''' <summary> ''' 按一下資料列的 [更新] 按鈕時發生 (但在 GridView 控制項更新資料列之前)。 ''' </summary> Protected Sub GridView1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GridView1.RowUpdating 'e.Keys:取得欲更新那筆資料的PK值。 'e.Cancel:True表示取消更新動作。 'e.OldValues:取得更新那筆資料,除了PK欄位之外的原始值。 'e.NewValues:取得欲更新那筆資料,除了PK欄位之外的更新值。 'e.RowIndex:目前要更新這筆資料在GridView中的索引值。 Dim cmpName As String = Trim(e.NewValues("CompanyName")) If cmpName.Length = 0 Then Response.Write("公司名稱不可為空白") e.Cancel = True End If End Sub
''' <summary> ''' 按一下資料列的 [更新] 按鈕時發生 (但在 GridView 控制項更新資料列之後)。 ''' </summary> Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs) Handles GridView1.RowUpdated 'e.AffectedRows:更新筆數。 'e.Keys:取得欲更新那筆資料的PK值。 'e.OldValues:取得更新那筆資料,除了PK欄位之外的原始值。 'e.NewValues:取得欲更新那筆資料,除了PK欄位之外的更新值。 'e.KeepInEditMode:Boolean,是否讓GridView維持在編輯模式。 'e.Exception:若更新發生例外,可透過e.Exception取得例外相關資訊。 'e.ExceptionHandled:Boolean,當例外發生且e.ExceptionHandled沒有為True時,會值接在網頁上顯示例外的錯誤畫面。 If e.Exception Is Nothing Then Response.Write("成功更新 " & e.AffectedRows & " 筆資料.") Else e.ExceptionHandled = True Response.Write(e.Exception.Message) e.KeepInEditMode = True End If End Sub
''' <summary> ''' 按一下其中一個頁面巡覽區按鈕時發生 (但在 GridView 控制項處理分頁作業之前)。 ''' </summary> ''' <remarks>以程式設計的方式設定 PageIndex 屬性時,不會引發這個事件。</remarks> Protected Sub GridView1_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles GridView1.PageIndexChanging 'e.Cancel:Boolean,True表示取消分頁選取模式。 'e.NewPageIndex:取得或設定要在 GridView 控制項中顯示的新頁面索引。 '按下「分頁」選擇,讓GridView顯示指定的分頁(e.NewPageIndex) GridView1.PageIndex = e.NewPageIndex End Sub
''' <summary> ''' 按一下其中一個頁面巡覽區按鈕時發生 (但在 GridView 控制項處理分頁作業之後)。 ''' </summary> Protected Sub GridView1_PageIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PageIndexChanged '在產生「Page 1 of 10 .」的提示資訊。 Response.Write("Page " & (GridView1.PageIndex + 1).ToString() & " of " & GridView1.PageCount.ToString() & ".") End Sub
''' <summary> ''' 按一下資料列的 [選取] 按鈕時發生 (但在 GridView 控制項處理選取作業之前)。 ''' </summary> ''' <remarks>以程式設計的方式設定 SelectedIndex 屬性時,不會引發這個事件。</remarks> Protected Sub GridView1_SelectedIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSelectEventArgs) Handles GridView1.SelectedIndexChanging 'e.NewSelectedIndex:取得或設定要在 GridView 控制項中選取之新資料列的索引。 'e.Cancel:Boolean,True表示取消選取事件。 '按下「選取」按鈕的這一資料列(e.NewSelectedIndex)進入選取模式 GridView1.SelectedIndex = e.NewSelectedIndex '另一種寫法 'GridView1.SelectedIndex = GridView1.SelectedIndex End Sub
''' <summary> ''' 按一下資料列的 [選取] 按鈕時發生 (但在 GridView 控制項處理選取作業之後)。 ''' </summary> Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged '在選取完成後,顯示所選取資料列第三個儲存格(Cells從0開始計算)的資料。 Response.Write("You selected: " & GridView1.SelectedRow.Cells(2).ToString() & ".") End Sub
''' <summary> ''' 按一下排序資料行的超連結時發生 (但在 GridView 控制項處理排序作業之前)。 ''' </summary> ''' <remarks>按一下排序資料行的超連結時,會引發 Sorting 事件 (但在 GridView 控制項處理排序作業之前)。</remarks> Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles GridView1.Sorting 'e.Cancel:Boolean,True表示取消排序事件。 'e.SortDirection:取得或設定排序 GridView 控制項的排序方向。 'e.SortDirection.Ascending():小到大,A~Z。 'e.SortDirection.Descending():大到小:Z~A。 'e.SortExpression:取得或設定運算式,用來排序 GridView 控制項中的項目。 '切換大小排序 If e.SortDirection = SortDirection.Ascending Then e.SortDirection = SortDirection.Descending Else e.SortDirection = SortDirection.Ascending End If '欄位Brithday不能排序 If e.SortExpression = "Birthday" Then e.Cancel = True Response.Write("You cannot sort by Birthday.") End If End Sub
''' <summary> ''' 按一下排序資料行的超連結時發生 (但在 GridView 控制項處理排序作業之後)。 ''' </summary> Protected Sub GridView1_Sorted(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.Sorted '顯示排序方法及排序欄位 Response.Write("Sorting by " & GridView1.SortExpression.ToString() & " in " & GridView1.SortDirection.ToString() & " order.") End Sub
人生有方向,是多麼重要及快樂的一件事。
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand If e.CommandName = "Add" Then Dim rowindx As Integer = CType((CType(e.CommandSource, Button).NamingContainer), GridViewRow).RowIndex For i As Integer = 0 To GridView1.Rows.Count - 1 If i = rowindx Then GridView1.Rows(rowindx).BackColor = Drawing.Color.Red Else GridView1.Rows(i).BackColor = Drawing.Color.White End If Next End If End Sub
<!--[if IE]><script language="javascript" type="text/javascript" src="excanvas.js"></script><![endif]--> <script language="javascript" type="text/javascript" src="jquery-1.3.2.min.js"></script> <script language="javascript" type="text/javascript" src="jquery.jqplot.min.js"></script> <link rel="stylesheet" type="text/css" href="jquery.jqplot.css" />
/*問卷統計圓餅圖*/ var plot1 = $.jqplot('chartQ1', [line1], { title: 'Q1職業分析', seriesDefaults: { renderer: $.jqplot.PieRenderer, rendererOptions: { sliceMargin: 8} }, legend: { show: true } });
Dim line As New Literal() '資料庫處理… '整理出相關統計數據… '整理出我們需要的參數格式 line.Text += "<script type='text/javascript'> var " & lineName & " = [['網管(" & Q1sum1.ToString & "票-" & ((Q1sum1 / sum) * 100).ToString("##.##") & "%)'," & Q1sum1.ToString() & _ "],['採購(" & Q1sum2.ToString() & "票-" & ((Q1sum2 / sum) * 100).ToString("##.##") & "%)'," & Q1sum2.ToString() & _ "],['網咖主(" & Q1sum3.ToString() & "票-" & ((Q1sum3 / sum) * 100).ToString("##.##") & "%)'," & Q1sum3.ToString & _ "],['系統人員(" & Q1sum4.ToString() & "票-" & ((Q1sum4 / sum) * 100).ToString("##.##") & "%)'," & Q1sum4.ToString & _ "],['其他(" & Q1sum5.ToString() & "票-" & ((Q1sum5 / sum) * 100).ToString("##.##") & "%)'," & Q1sum5.ToString() & "]]</script>" '加到PlaceHolder控制項 phJS.Controls.Add(line) End Sub
<script type='text/javascript'> var line1 = [['網管(12票-7.19%)',12],['採購(37票-22.16%)',37],['網咖主(17票-10.18%)',17],['系統人員(17票-10.18%)',17],['其他(0票-%)',0]] </script>
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand '中斷GridView與sqlDataSource的「綁定,Binding」,讓GridView進入EmptyDataTemplate樣板 If e.CommandName = "GridInsert" Then GridView1.DataSourceID = Nothing End If End Sub
Protected Sub bntBack_Click(ByVal sender As Object, ByVal e As System.EventArgs) 'sqlDSNW請修改為自己的名稱 GridView1.DataSourceID = "sqlDSNW" End Sub
Protected Sub bntBack_Click1(ByVal sender As Object, ByVal e As System.EventArgs) 'sqlDSNW請修改為自己的名稱 GridView1.DataSourceID = "sqlDSNW" End Sub
ps..這裡我是故意把兩個Button取同樣的名稱,我發現在VS2008與VS2010(或應該說.NET Framework 2.0與4.0的CLR)一些差異,在VS2008中,會建成Click與Click1兩個副程式,但在VS2010中它會很聰明共用同一個Click副程式,所以會少打一行程式碼。但實務上應該會不有人那麼無聊沒事放兩個Back的按鈕,而且還取相同名稱。當然也可能是表頭放一個、表尾放一個,但名子不要一樣,一行程式應該不會影響你很多效能與時間吧!
ps..基本上只要資料控制項有支援「Insert」功能,都能拿來做GridView的新增功能控制項,再利用上敘方法加入返回GridView頁面功能即可。
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim localIP As String = "" '取得連線的IP localIP = Request.ServerVariables("REMOTE_ADDR").ToString Dim IP() As String = localIP.Split(".") '判斷前三碼是否為內網IP段 If IP(0) <> "192" OrElse IP(1) <> "168" OrElse IP(2) <> "3" Then Response.Write(">script type="text/javascript"> alert('此網頁只能從公司內網進入!網頁將轉向首頁!') >/script>") Response.Redirect("http://kkbruce.blogspot.com/") End If End Sub End Class
古人說:「師父領進門,修行看個人。」我最近終於去拜師了,我試了好久,應該這樣說,我之前沒時間沒機會沒現金,所以我在資訊的路上通常只能走「無師自通」的路,像之前為了研發公司自有DDNS服務,就花去我近半年的時間,實在好累,不過也很爽,你能做出來別人沒有的東西,就是一種成就。
GridView完整破解攻略--可自動返回上一頁(資料顯示頁),讓GridView擁有完整的「新增、刪除、修改、更新」四大功能,而且操作流程上「順的不得了」。只需要一點點點點點點點程式,欲知結果,請下回分曉!