2014年2月26日 星期三

jQuery無法對UpdatePanel內容物起作用--解決

查到一些文章有說明原因,是跟Postback相關
我使用以下這篇的解法成功解決
http://www.codeproject.com/Articles/534587/ASP-NET-jQuery-is-not-Working-in-UpdatePanels

大概是,假設你想要起作用的function是叫jScript
<script type="text/javascript">
    // JavaScript funciton to call inside UpdatePanel
    function jScript() {
        $("#click").click(function () {
            alert("Clicked Me!");
        });
    }
</script>

在UpdatePanel裡面加上這段就可以了

<script type="text/javascript">
                Sys.Application.add_load(jScript);
            </script>


2014年2月14日 星期五

20140214


二月十四日。

翻了去年的網誌(這),發現煩惱的事情好像差不多,沒什麼長進,我的廣東話還是比恩恩差,阿嬤說的話還是一樣(交外國女朋友很麻煩),還是在擔心未來工作要在哪裡...。我的生命好像從當兵以後就陷入一種混亂,表面還是安穩的運作,裡層卻好像失控著。

是呀,我知道,從以前就知道,當我多寫幾篇文章--也就是多些時間安靜沉澱自己,心底會比較清澈踏實。從去年2月到9月,這半年我還在當兵,沒什麼好說的,就當作去遠方旅行了,人生中的一段插曲(說到這個,當兵唯一的益處好像就是回憶,可以跟當過兵的男人聊軍旅生涯,看到營區可以想像裡面大概是甚麼樣子)。然後我開始了人生第一份工作,到現在也半年了,我覺得我開始要學習的功課是「不要把工作帶回家」。重點倒不是我回家繼續寫程式,而是時間的安排混亂了,各樣事情不斷氾濫溢出,結果就是我沒有做最優先重要的事情--安靜、看書、讀聖經禱告,心靈枯乾,這樣的惡性循環必須打住。

情人節沒特別安排什麼給莉莉,理由好像很充分,一整天都在上班,六點才下班,接著晚上社青的聚會,根本也沒時間。但是我回到家卻有禮物卡片和玫瑰在我的桌子上(現在還不知道她怎麼做到的),讓我很愧疚---當然莉莉也沒有要求我做到什麼,今天晚上惹她生氣,她也很快就原諒我了---但這使我認真思考,如果我的時間表真的滿到連情人節有一點小創意或驚喜給女朋友都做不到,也未免太誇張。曾幾何時,我還自豪於自己是個很有創意的人,我寫天馬行空的文章,拍怪異的短片,作詩寫詞。今天我自我介紹的時候很挫折,我只能努力說出「我以前愛踢足球,但很久沒踢了」,還有「現在喜歡打籃球,噢,我也喜歡音樂」才怪,現在根本也沒在聽音樂也沒在碰樂器...我已經心裡有數,「我的興趣是寫程式」這句話是不會引起任何共鳴的。現在的我根本是個索然無趣的人...。

我很確定自己不要繼續成為這樣的人。成為怎樣的人,比工作重要的多吧。感謝莉莉的包容,常常我都自以為很能包容妳愛生氣(所以今天才講出那些不得體的話),其實自己何嘗不是有許多缺點、不成熟和錯誤的決定,妳也都這樣包容我。

每天都要過情人節~



2014年2月1日 星期六

自製廉價偽無框畫

在永和的新住處,重要的擺設都布置得差不多了,但發現還有一個牆面空空的~很想掛上幾面簡單的無框畫,畫的內容展現品味,無框畫本身則給人時尚感。但是逛了IKEA、HOLA,覺得現成的無框畫都有點貴!而且又很難選到自己理想的圖案,於是想辦法DIY囉~

一開始對於要怎麼做還沒有完整的想法,走一步算一步,但最後的成品還蠻滿意的!


圖1
  1. 影印
    選好想要圖片的檔案,拿去影印店
    印了A4大小。用的是厚紙,一張15元。(圖1)
  2. 材料
    接著選材料,要製作一個框架,讓A4
    紙可以包裹在上面。到美術用品店選了許久...最後決定用一種類似珍珠板的--白色PS板(見圖2)! 這種板輕盈又好切割,用美工刀就可以切,不像保麗龍會散出一堆屑屑。

自行架設smtp server,透過ASP.NET程式傳送電子郵件

我想要自己做一個功能:使用者申請新帳號後,由系統發送認證的Email到使用者填寫的信箱。本來是想說用Gmail發信試試看,但是一直不成功(還沒找出原因),後來想想既然自己有Server,何不乾脆自己架個Mail Server?於是乎研究了一下,還蠻簡單的。

架設smtp server可利用免費軟體hMailServer(http://www.hmailserver.com)達成。參考以下網誌:

3分鐘輕鬆擁有自己的Mail Server
http://blog.xuite.net/sendohshih/blog/41958216

使用hMailServer步驟:

2013年12月17日 星期二

javascript 和 asp 控制項之間傳送值

拿了一個別人寫的農曆asp頁面來用,可是他全部的code都是寫在javascript裡面。
我想要把一些值,例如使用者點選的日期,拿來繼續擴充我的功能,但必需要跟asp控制項結合,該怎麼在這兩者之間傳送值?

目前參考網上的方法如下,需要利用<asp:HiddenField />

範例 :

<asp:HiddenField  ID="hidden1" runat="server"/>

<script  type="text/javascript">
        document.getElementById("<%= hidden1.ClientID %>").value = "Hello!";

 </script>

因為HiddenField具有"Value"這個屬性,所以 getElementById( ).value 可以將值傳過去,
其他控制項似乎沒有? 我只嘗試Label,不能這樣做。
結論是用HiddenField當作一個媒介就行了。

2013年12月11日 星期三

從DataTable或GridView存取資料

從DataTable :

table1.Rows[rowindex]["ColumnName"]

第二個中括號也是有提供數字索引的方法,但如果之後新增或減少column,column的順序會改變,所以還是用ColumnName當作索引比較安全。
從GridView就比較麻煩,它沒有直接用ColumnName查詢的功能

gridview1.Rows[rowindex].Cells[columnindex]

所以最好還是回到DataTable去找資料。

2013年10月30日 星期三

CustomValidator OnServerValidate event not Firing? 不會進入OnServerValidate事件?

在新增使用者的介面,我想要使用CustomValidator 在資料送出前檢查使用者帳戶是否已經存在資料庫。CustomValidator 可使用OnServerValidate事件,在後台進行自己想要的驗證過程。


但是測試的時候卻發現,按下確認按鈕後並不會進入OnServerValidate事件!ControlToValidate和ValidationGroup屬性都有設好,但就是不會進入,到底是為什麼呢?



上網搜尋原因,原來是它必須要在觸發"Page.IsValid"的時候,才會進入OnServerValidate事件,否則根本不會有驗證的效果。所以需要在確認按鈕的Click事件裡面,檢查Page.IsValid。

if (Page.IsValid)
{
    ... ...
}

但是按下確認按鈕後,還是不行!! 為什麼呢?在確認按鈕的Click事件加入中斷點,發現根本沒有進入Click事件...
原來是跟頁面生命週期的概念有關了~~因為按下按鈕後,頁面會進行一次Postback,也就是一次重生,重生過程中會先進行Validate,才會處理其他事件(按鈕Click)。也就是畫面中其他欄位的Validator產生作用了,有些欄位並沒有通過驗證,所以根本不會進行到Click的動作。

所以當其他欄位都正確填入,順利通過驗證後,按下確認按鈕,就會執行到 if (Page.IsValid) 程式碼,之後才會觸發進入OnServerValidate事件。