呼叫一個 RadWindow 並讓這個 Window ShowModal
是件容易的事
但是要讓這個 Window 關閉回到呼叫他的視窗該如何做
找了一下範例
發現 Telerik 線上文件也有人再問這個問題
function GetRadWindow()
{
var oWindow = null;
if (window.radWindow)
oWindow = window.RadWindow; //Will work in Moz in all cases, including clasic dialog
else if (window.frameElement.radWindow)
oWindow = window.frameElement.radWindow;//IE (and Moz as well)
return oWindow;
}
// 按下關閉或是離開的按鍵
function Button2_onclick() {
GetRadWindow().Close();
}
2009年11月29日 星期日
2009年11月28日 星期六
.NET Excel
Excel 在 Server 端讀取或是產生
已經變成在商業應用程式中常見的需求
之前利用 VSTO 或是利用 Automation 的方式操作
會遇到幾個瓶頸
1. 慢 (1 sec vs. 40 sec)
2. 應用程式記憶體沒有正常的釋放掉
3. 安全考量 (前兩個問題就很頭痛了,這點也就不需要錦上添花了)
已經變成在商業應用程式中常見的需求
之前利用 VSTO 或是利用 Automation 的方式操作
會遇到幾個瓶頸
1. 慢 (1 sec vs. 40 sec)
2. 應用程式記憶體沒有正常的釋放掉
3. 安全考量 (前兩個問題就很頭痛了,這點也就不需要錦上添花了)
2009年11月24日 星期二
一月初到十月底的查詢
這個題目似乎很簡單
假設資料庫中有個表格如下
CREATE TABLE TX (DT DATETIME, EVENT VARCHAR(100))
一般都會以下的查詢
SELECT EVENT FROM TX WHERE DT BETWEEN '2009/1/1' AND '2009/10/31'
但陷阱會出現在 '2009/10/31' 這邊
因為 '2009/10/31' 是代表 '2009/10/31 00:00:00'
下面這筆資料就不會被擷取到
INSERT INTO TX VALUES('2009/10/31 10:10:10', 'SOMETHING WRONG')
所以敘述應改改為
SELECT EVENT FROM TX WHERE DT >= '2009/1/1' AND DT < '2009/11/1'
或是
SELECT EVENT FROM TX WHERE CONVERT(VARCHAR(8), DT, 112)
BETWEEN '20090101' AND '20091031'
會比較好
在 Oracle 也是一樣
SELECT EVENT FROM TX WHERE DT > to_date('2009/1/1', 'YYYY/MM/DD') and DT < to_date('2009/11/1', 'YYYY/MM/DD');
假設資料庫中有個表格如下
CREATE TABLE TX (DT DATETIME, EVENT VARCHAR(100))
一般都會以下的查詢
SELECT EVENT FROM TX WHERE DT BETWEEN '2009/1/1' AND '2009/10/31'
但陷阱會出現在 '2009/10/31' 這邊
因為 '2009/10/31' 是代表 '2009/10/31 00:00:00'
下面這筆資料就不會被擷取到
INSERT INTO TX VALUES('2009/10/31 10:10:10', 'SOMETHING WRONG')
所以敘述應改改為
SELECT EVENT FROM TX WHERE DT >= '2009/1/1' AND DT < '2009/11/1'
或是
SELECT EVENT FROM TX WHERE CONVERT(VARCHAR(8), DT, 112)
BETWEEN '20090101' AND '20091031'
會比較好
在 Oracle 也是一樣
SELECT EVENT FROM TX WHERE DT > to_date('2009/1/1', 'YYYY/MM/DD') and DT < to_date('2009/11/1', 'YYYY/MM/DD');
2009年11月23日 星期一
資料庫日期函數
整理一下資料庫的日期函數
SQL Server:
有時需要日期 YYYY/MM/DD (字串格式)
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
有時需要日期 YYYY/MM/DD (日期格式)
SELECT CAST (CONVERT(VARCHAR(10),GETDATE(),111) as datetime)
Oracle
有時需要日期 YYYY/MM/DD (字串格式)
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL
有時需要日期 YYYY/MM/DD (日期格式)
SELECT TRUNC(SYSDATE) FROM DUAL
好像 Oracle 的比較直覺
至於時間部分
SQL Server
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
SELECT TO_CHAR(SYSDATE,'hh24:mi:ss') from dual
好像 Oracle 也比較直覺
SQL Server:
有時需要日期 YYYY/MM/DD (字串格式)
SELECT CONVERT(VARCHAR(10),GETDATE(),111)
有時需要日期 YYYY/MM/DD (日期格式)
SELECT CAST (CONVERT(VARCHAR(10),GETDATE(),111) as datetime)
Oracle
有時需要日期 YYYY/MM/DD (字串格式)
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD') FROM DUAL
有時需要日期 YYYY/MM/DD (日期格式)
SELECT TRUNC(SYSDATE) FROM DUAL
好像 Oracle 的比較直覺
至於時間部分
SQL Server
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
SELECT TO_CHAR(SYSDATE,'hh24:mi:ss') from dual
好像 Oracle 也比較直覺
2009年11月21日 星期六
Windows Server 2000/2003 遠端連線的上限
通常只能同時2人連線, 第三人連進去就反應
"遠端電腦的連線已經超過最大極限"
這個問題主要是 Windows 出廠的限制,
修改群組原則 (Group Policy) 就可以解決
執行 gpedit.msc
在 本機電腦原則>電腦設定>系統管理範本>Windows元件>終端機服務 的<限制連線數目>
把它啟用並設定新的欲連線人數
打完收工...
"遠端電腦的連線已經超過最大極限"
這個問題主要是 Windows 出廠的限制,
修改群組原則 (Group Policy) 就可以解決
執行 gpedit.msc
在 本機電腦原則>電腦設定>系統管理範本>Windows元件>終端機服務 的<限制連線數目>
把它啟用並設定新的欲連線人數
打完收工...
RadGrid 擴充欄位處理
一個簡單的範例
要從下面的 SQL 取出資料
select name "姓名", grade "年級", id 學號 from student
想要產生以下的結果
在 RadGrid 要如何實作?
1. 在 RadGrid 中利用 Property Editor 加入一個 Column (Bound Column) 並定義為 Template Column
可利用 Convert this column into Template Column
PS. 不要忘了原先的姓名與年紀兩個欄位,不過要把他們 Visible 變成 False
<telerik:GridTemplateColumn UniqueName="column" HeaderText="姓名/ 年級">
<EditItemTemplate>
<asp:TextBox runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="DATA"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
在 .aspx 中會產生對應的一個 ItemTemplate, Telerik 會先放好一個陽春的 asp:Label 在那邊
記得將個 ID 補齊, 以便後面的程式在 Data Bind 時把資料寫進去
2. 補上 RadGrid.DataItemBound 的事件
3. 當 DataItemBound 被 Trigger 時執行以下的 Code
protected void Mytable_ItemDataBound(object sender, GridItemEventArgs e)
{
// 確定是否是該對應的 SourceId, 其實也可以不用一定要判斷,有時 DataSourceID 可能不會用到
if (e.Item is GridDataItem && e.Item.OwnerTableView.DataSourceID == "SqlDataSource1")
{
Label lbl = e.Item.FindControl("DATA") as Label;
lbl.Text = (e.Item as GridDataItem)["姓名"].Text" + "<br>" + (e.Item as GridDataItem)["年級"].Text";
}
}
要從下面的 SQL 取出資料
select name "姓名", grade "年級", id 學號 from student
想要產生以下的結果
學號 | 姓名/ 年級 |
A0001 | Philip 3 |
A0002 | Jersey 3 |
在 RadGrid 要如何實作?
1. 在 RadGrid 中利用 Property Editor 加入一個 Column (Bound Column) 並定義為 Template Column
可利用 Convert this column into Template Column
PS. 不要忘了原先的姓名與年紀兩個欄位,不過要把他們 Visible 變成 False
<telerik:GridTemplateColumn UniqueName="column" HeaderText="姓名/ 年級">
<EditItemTemplate>
<asp:TextBox runat="server"></asp:TextBox>
</EditItemTemplate>
<ItemTemplate>
<asp:Label runat="server" ID="DATA"></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
在 .aspx 中會產生對應的一個 ItemTemplate, Telerik 會先放好一個陽春的 asp:Label 在那邊
記得將個 ID 補齊, 以便後面的程式在 Data Bind 時把資料寫進去
2. 補上 RadGrid.DataItemBound 的事件
3. 當 DataItemBound 被 Trigger 時執行以下的 Code
protected void Mytable_ItemDataBound(object sender, GridItemEventArgs e)
{
// 確定是否是該對應的 SourceId, 其實也可以不用一定要判斷,有時 DataSourceID 可能不會用到
if (e.Item is GridDataItem && e.Item.OwnerTableView.DataSourceID == "SqlDataSource1")
{
Label lbl = e.Item.FindControl("DATA") as Label;
lbl.Text = (e.Item as GridDataItem)["姓名"].Text" + "<br>" + (e.Item as GridDataItem)["年級"].Text";
}
}
2009年11月19日 星期四
Web.Config 的抓取 ConnectionString
利用 C# 抓取 Web.Config 中的 ConnectionString
String ConnectionStr =
ConfigurationManager.ConnectionStrings["您的設定"].ConnectionString;
String ConnectionStr =
ConfigurationManager.ConnectionStrings["您的設定"].ConnectionString;
RADGrid DataKeyNames vs SelectedValues
利用 RADGrid 可以完成很多事情
但是有些小地方沒有注意
他可是理都不理您
RadGrid 中 有一個屬性稱為 DataKeyNames
若要 Server 端的應用程式抓到前端使用者選擇的列 (Row)
DataKeyNames 不設,系統永遠都是傳回空值
剛好自己有一個 Sample 可以 Work
原來是系統會去判斷是否有 PK
並決定 DataKeyNames 的組合
萬一沒有的話
鄉親啊
一定要自己設
因為自己被埋伏在這邊好久, 大概花了一個小時才解決這個問題.
另外 DataSource 與 DataSourceID 的差異
在於Dataset 排序時, 資料是否可以重送
還是選擇 DataSourceID 可以省點開發的時間
另外, 若不採用 DataSourceID 而是自己建立的 Datatable
要記得在 RadGrid.NeedDataSource event 對 source 物件補上對應的 DataSource
Ex:
protected void MYTABLE_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
// 從 Session 抓到的物件
DataTable t = (DataTable)Session["MYTABLE"];
// 補上對應的 DataSource
(source as RadGrid).DataSource = t;
}
但是有些小地方沒有注意
他可是理都不理您
RadGrid 中 有一個屬性稱為 DataKeyNames
若要 Server 端的應用程式抓到前端使用者選擇的列 (Row)
DataKeyNames 不設,系統永遠都是傳回空值
剛好自己有一個 Sample 可以 Work
原來是系統會去判斷是否有 PK
並決定 DataKeyNames 的組合
萬一沒有的話
鄉親啊
一定要自己設
因為自己被埋伏在這邊好久, 大概花了一個小時才解決這個問題.
另外 DataSource 與 DataSourceID 的差異
在於Dataset 排序時, 資料是否可以重送
還是選擇 DataSourceID 可以省點開發的時間
另外, 若不採用 DataSourceID 而是自己建立的 Datatable
要記得在 RadGrid.NeedDataSource event 對 source 物件補上對應的 DataSource
Ex:
protected void MYTABLE_NeedDataSource(object source, GridNeedDataSourceEventArgs e)
{
// 從 Session 抓到的物件
DataTable t = (DataTable)Session["MYTABLE"];
// 補上對應的 DataSource
(source as RadGrid).DataSource = t;
}
2009年11月18日 星期三
紐西蘭將給三個月免簽
雖然去過了紐西蘭,但是以後有機會還可以去
尤其是但尼丁與藍眼企鵝..
尤其是但尼丁與藍眼企鵝..
免簽證再添一國 外交部:紐西蘭將給三個月免簽
- 2009-11-18
- 新聞速報
- 【中時電子報/綜合報導】
繼英國及愛爾蘭之後,外交部今(18)日再度宣布重大領務訊息:紐西蘭也將從十一月底開始,給予台灣遊客三個月免簽證的優惠。
根據紐西蘭移民局最新公告,從2009年十一月三十號開始,持台灣護照的人士,凡是商務旅遊、探親訪友或是短期遊學,不超過三個月者,不需要申請簽證,也就是三個月免簽。但是如果在紐西蘭停留超過三個月或是要居住、工作、結婚及讀書等的話,還是必須依照程序申請簽證。
根據了解,這項計畫早從今年年初開始,紐西蘭移民局就著手研究簡化簽證門檻審核程序,以促進旅遊、遊學與商務交流;給予持台灣護照的旅客三個月免簽證,就是這個計畫的一部份。
不過紐西蘭方面也強調,符合這項計畫的台灣護照持有人,如果要獲得三個月免簽,除了必須是台灣地區的合法居民外,同時也要符合「身心健康」、「有明確行程安排」與「相關財力證明」等三要項。
2009年11月17日 星期二
2009年11月14日 星期六
2009年11月9日 星期一
認識好油/油鍋冒煙才炒菜 你錯啦!
2009/11/09
【元氣周報/記者張耀懋/報導;諮詢/永和耕莘醫院營養師陳奕翰】
(記者陳立凱/攝影)
為了家人健康,蕭太太購買價格較高的冷壓橄欖油,煎煮炒炸都用同一瓶,沒想到吃了半年後,先生體檢結果滿江紅。
原來冷壓橄欖油只適合「低溫烹調」,若用來炒菜、炸油,反而會形成回鍋油。這是前陣子的新聞事件,顯示民眾對「好油」、「正確用油」的認知還有待加強。
本期元氣除了介紹買油用油觀念,還由南到北尋找阿嬤時代、古法壓製的古早油…
各類油脂發煙點
茶油/252℃
大豆沙拉油/245℃
紅花籽油/229℃
精製豬油/220℃
葵花油/210℃
玉米油/207℃
奶油/207℃
橄欖油/190℃
麻油/177℃
花生油/162℃
1、聰明選油
彰化秀傳醫院營養部主任張水秀指出,油品都含飽和脂肪、單元不飽和脂肪酸、多元不飽和脂肪酸,只是比率不同。
飽和脂肪酸:動物性油脂及椰子油、棕櫚油、瑪其林、酥油等含反式脂肪酸的氫化植物油,都是屬於飽和脂肪酸的油,會增加心血管疾病發生風險。
不飽和脂肪酸:橄欖油、葵花籽油、芥花油、花生油等油品含單元及多元不飽和脂肪酸,對心血管危害較少,但不耐高溫炒炸。
精製油加工過 已非好油
永和耕莘醫院營養師陳奕翰提醒,市面上精製油一定要慎選。許多廠商為迎合國人大火炒菜習慣,把優良進口橄欖油或其他食用油再精製,又多了一道氧化過程,就不能算是我們說的「好油」了。
最正確的做法,是買未精製的植物油,做中、低溫烹煮。
2、正確用油
「滋!滋!滋…」一道道白煙竄起,王太太忙不迭地倒入青菜,快炒三分鐘起鍋,一氣呵成。香氣雖四溢,看在營養師眼中,心肝揪成團。
竹筷試溫175~195℃下鍋
如果你是冒煙才開始炒菜,那就大錯特錯了。彰濱秀傳醫院營養科組長王馥祁提醒,熟調食物時,油溫不可過高,在175~195℃較適當,不要等冒煙才下鍋,因為這個溫度不但可以保留植物油中的多元不飽和脂肪酸含量,且可以避免不飽和脂肪酸冒煙時與空氣中的氧結合產生黏膠,附著在廚具上,不易清洗。
王馥祁建議,要知道油溫是否適中,可以一根竹筷插在油中試試,當筷子周圍開始出現小泡沫時,即為煎、炸或炒的最適當溫度。
油炸用油 發煙點要190℃以上
王馥祁說,食物加熱時,剛起薄煙時溫度稱「發煙點」,此時油脂品質開始變劣。發煙點可作為油脂精製程度和油脂新鮮度之指標。基於安全和經濟,用來油炸食物之油脂其發煙點最好在190℃以上。
瀝乾食材 避免加速酸敗
好了,抓緊食用油最佳烹煮溫度後,可以準備食材了。食材清洗完,切記將水分儘量滴乾,因為水分不但會使油鍋起泡、飛濺,同時也會促進水解反應,加速水解性酸敗。
勤撈碎屑 油炸鍋面宜小
下鍋了。看著食材在鍋中翻騰,別忽略油鍋邊邊的屑屑。油炸時,落入油中的麵粉、麵包屑、食物碎塊,應不時撈走,因為這些屑屑會加速油脂酸敗。此外,鍋面不可太大,宜面小、鍋深,可以減少油脂與空氣接觸的面積。
油炸剩油 炒菜盡快用掉
起鍋了,剩下的油脂怎麼辦?陳奕翰提醒,炸過的油用來炒菜為宜,不宜再用來油炸,且應儘快用完,切勿反覆使用。當油顏色變深,質地變稠,油脂混濁,使用時產生如螃蟹吐出的氣泡時,就應丟棄,不可再用。
3、健康吃油
1.水油炒:先放水,使用中、小火,等到水稍微滾了,再放油。這種做法為「水油煎法、炒法」。若直接用油熱鍋,溫度會直逼200℃至300℃,油質會變化並冒煙。
2.水煮法:水煮菜,將菜撈起,再拌油和調味。
油品與適用烹調
1.適合涼拌(49℃以下):除了常溫下是固體的奶油、豬油、椰子油、酪梨油與反式脂肪油外,任何食用油都適合。亞麻仁油因為營養價值高,建議生吃才不易破壞。
2.只適合水炒(100℃)、不可火炒:葵花油、菜籽油。
3.只適合中火炒(163℃)、不適合煎炸:冷壓初榨橄欖油、大豆油、玉米油、花生油、胡桃油、芝麻油、奶油、豬油。
4.可以大火炒或煎炸(190℃):葡萄籽油、杏仁油、榛子油、茶油、酪梨油。
各種油脂營養價值:
豬油:含花生四烯酸,這是它常被詬病處,因這成分會誘發身體發炎。不過,豬油中含有月桂酸,可抗菌、抗病毒、提升免疫力。此外,豬油穩定性高、不易變質,較耐高溫烹調。
橄欖油:含較高的單元不飽和脂肪酸,血脂肪不易增加,降低心血管病變的機會。且含抗氧成分,可抗老化。
葵花油:最常見的是亞麻仁油酸葵花籽油。有高成分的多元不飽和脂肪酸或稱亞麻仁油酸,是一種對人體相當重要的脂肪酸。
葡萄籽油:不含膽固醇和鈉。所含亞油酸具防止血栓形成、擴張血管的作用。是目前已知亞油酸含量最高的植物油之一。
2009年11月5日 星期四
HTC ActiveSync 遇到連線的問題
我的鑽石機利用 ActiveSync 4.5 與電腦連線
在家中的 PC 連線非常的非常順利
但是在 Notebook 每每都遇到 "正在擷取設定中", 反正就是不能連線
這個問題困擾我兩個多月
後來發現在手機中從 設定-> 連線 -> USB 到 PC 中
有個選項 "使用進階的網路功能"
不要選擇它, 不能連線的問題就解決了
Mobile 01 有討論這個問題
但是都沒有正面的說明為何不要勾選與勾選的差別
Anyway, 頭痛的問題解決了
訂閱:
文章 (Atom)