紀錄一下,使用上遇到的問題:
1. 找不到任何適用特定文化特性或中性文化特性的資源。請確定您已在編譯時期正確地將 "AjaxControlToolkit.Properties.Resources.resources" 嵌入或連結至組件 "AjaxControlToolkit" 中,或所有需要的附屬組件均為可載入且已完整簽署。
Ans: 無加入ToolkitScriptManager或ScriptManager控制項。
2. 加入ToolkitScriptManager控制項後,發生MasterPage的JavaScript或JQuery運作不正常
做法:
1. 在ScriptManager或ToolkitScriptManager控制項加上ScriptMode="Release",此屬性用來決定用戶端指令碼程式庫該使用debug抑或Release的版本,ScriptMode預設為Auto,會跟著web.config的deployment retail的屬性走,預設為false,因此ScriptMode="Debug"。AjaxToolKit官網也建議將ScriptMode="Release",http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/ToolkitScriptManager/ToolkitScriptManager.aspx
//xxx.aspx
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" ScriptMode="Release"></asp:ToolkitScriptManager>
<asp:TextBox ID="txtDate" runat="server"></asp:TextBox>
<asp:CalendarExtender ID="txtDate_CalendarExtender" runat="server" Enabled="True" TargetControlID="txtDate"></asp:CalendarExtender>
2. 也可能是以下板友列出的原因:
http://social.msdn.microsoft.com/Forums/zh-TW/81016eba-6e82-479a-b426-fc53f8b1f3ac/calendarextender-
參考資料
http://weblogs.asp.net/lorenh/archive/2008/02/15/speed-up-load-time-of-ajax-control-toolkit-controls-while-debugging.aspx
http://msdn.microsoft.com/zh-tw/library/system.web.ui.scriptmanager.scriptmode.aspx
http://msdn.microsoft.com/zh-tw/library/ms228298.aspx
2013年9月26日 星期四
2013年9月25日 星期三
[C#] Math.Round/Ceiling/Floor用法
說明:
.NET Framework 中的 Round 方法會執行「四捨六入五成雙」(Banker's Rounding),將結尾為 .5 的數字捨入或進位為最接近的偶數,而不是下一個較高的位數。
例如,2.5會捨入為 2,而 3.5 會進位為 4 (當資料交易很大時,此法有助於避免系統性地偏向較高位數的值)。
因此:
Math.Round方法有提供MidpointRounding列舉型別:
//當某個數字剛好位於另外兩個數字之間的中點時,將其捨入成為距離最近的偶數。
ToEven = 0,
//當某個數字剛好位於另外兩個數字之間的中點時,朝向遠離零的方向將其捨入成距離最近的數字。
AwayFromZero = 1,
選擇AwayFromZero即是我們熟知的算術四捨五入,
Math.Round(2.5, 0, MidpointRounding.AwayFromZero) = 3。
P.S.
在 T-SQL 中,Round函式則會一律往遠離 0 的方向捨入。因此 2.5 會捨入為 3,
但Round(0.5, 0)會出現「轉換 expression 到資料類型 numeric 時發生算術溢位錯誤。」
這應該是因為0.5的資料類型是numeric(1, 1),進位後為1.0導致有效位數不夠。
因此Round(0.4, 0)不會有錯誤。
可使用Round(CAST (0.5 AS numeric(2,1)), 0)增加有效位數或使用字串類型做處理(Round('0.5', 0))
參考資料:
http://www.dotblogs.com.tw/jeff-yeh/archive/2009/06/15/8834.aspx
http://msdn.microsoft.com/zh-tw/library/ms131274(VS.80).aspx
http://msdn.microsoft.com/zh-tw/library/bb882648(v=vs.90).aspx
http://sharedderrick.blogspot.tw/2009/06/round-sql-server-2008.html
http://www.dotblogs.com.tw/jaigi/archive/2011/05/11/24822.aspx
.NET Framework 中的 Round 方法會執行「四捨六入五成雙」(Banker's Rounding),將結尾為 .5 的數字捨入或進位為最接近的偶數,而不是下一個較高的位數。
例如,2.5會捨入為 2,而 3.5 會進位為 4 (當資料交易很大時,此法有助於避免系統性地偏向較高位數的值)。
因此:
Math.Round方法有提供MidpointRounding列舉型別:
//當某個數字剛好位於另外兩個數字之間的中點時,將其捨入成為距離最近的偶數。
ToEven = 0,
//當某個數字剛好位於另外兩個數字之間的中點時,朝向遠離零的方向將其捨入成距離最近的數字。
AwayFromZero = 1,
選擇AwayFromZero即是我們熟知的算術四捨五入,
Math.Round(2.5, 0, MidpointRounding.AwayFromZero) = 3。
P.S.
在 T-SQL 中,Round函式則會一律往遠離 0 的方向捨入。因此 2.5 會捨入為 3,
但Round(0.5, 0)會出現「轉換 expression 到資料類型 numeric 時發生算術溢位錯誤。」
這應該是因為0.5的資料類型是numeric(1, 1),進位後為1.0導致有效位數不夠。
因此Round(0.4, 0)不會有錯誤。
可使用Round(CAST (0.5 AS numeric(2,1)), 0)增加有效位數或使用字串類型做處理(Round('0.5', 0))
參考資料:
http://www.dotblogs.com.tw/jeff-yeh/archive/2009/06/15/8834.aspx
http://msdn.microsoft.com/zh-tw/library/ms131274(VS.80).aspx
http://msdn.microsoft.com/zh-tw/library/bb882648(v=vs.90).aspx
http://sharedderrick.blogspot.tw/2009/06/round-sql-server-2008.html
http://www.dotblogs.com.tw/jaigi/archive/2011/05/11/24822.aspx
[ASP.NET] 在GridView的footer產生小計
說明:有一GridView1如下
月份 薪水
1 22000
2 22000
3 22000
... ...
12 22001
不透過sql匯總,想在GridView的footer顯示薪水總和該怎麼做?
作法:
在RowDataBound事件中將數據做匯總,再顯示在footer中。
//xxx.aspx
<GridView ID="GridView1" ShowFooter="True">
</GridView>
//xxx.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int iSumSalary = 0;
foreach (GridViewRow gvr in GridView1.Rows)
{
iSumSalary += Convert.ToInt32(gvr.Cells[1].Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "合計";
e.Row.Cells[1].Text = iSumSalary.ToString();
}
}
參考資料:
http://www.dotblogs.com.tw/puma/archive/2008/10/17/5713.aspx
http://bibby.be/2009/01/gridview.html
月份 薪水
1 22000
2 22000
3 22000
... ...
12 22001
不透過sql匯總,想在GridView的footer顯示薪水總和該怎麼做?
作法:
在RowDataBound事件中將數據做匯總,再顯示在footer中。
//xxx.aspx
<GridView ID="GridView1" ShowFooter="True">
</GridView>
//xxx.aspx.cs
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int iSumSalary = 0;
foreach (GridViewRow gvr in GridView1.Rows)
{
iSumSalary += Convert.ToInt32(gvr.Cells[1].Text);
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "合計";
e.Row.Cells[1].Text = iSumSalary.ToString();
}
}
參考資料:
http://www.dotblogs.com.tw/puma/archive/2008/10/17/5713.aspx
http://bibby.be/2009/01/gridview.html
2013年9月17日 星期二
[ASP.NET] 使用DataTable撈Date型別的資料會出現時分秒的解決方式
說明:
使用DataTable抓取T-SQL中資料類型為Date的欄位,日期會出現上午12:00:00。
解決方式:
1. string.format("{0: yyyy/MM/dd}", dt.Rows[index]["Date"]);
2. Convert.ToDateTime(dt.Rows[index]["Date"]).ToString("yyyy/MM/dd");
1.2項適用於直接顯示在TextBox或Lable控制項上
3. <asp:BoundField DataField="Date" DataFormatString="{0:yyyy/MM/dd}" />
4. Text='<%# Eval("Date", "{0:yyyy/MM/dd}") %>'
3.4項適用於繫結至GirdView上
使用DataTable抓取T-SQL中資料類型為Date的欄位,日期會出現上午12:00:00。
解決方式:
1. string.format("{0: yyyy/MM/dd}", dt.Rows[index]["Date"]);
2. Convert.ToDateTime(dt.Rows[index]["Date"]).ToString("yyyy/MM/dd");
1.2項適用於直接顯示在TextBox或Lable控制項上
3. <asp:BoundField DataField="Date" DataFormatString="{0:yyyy/MM/dd}" />
4. Text='<%# Eval("Date", "{0:yyyy/MM/dd}") %>'
3.4項適用於繫結至GirdView上
2013年9月9日 星期一
[ASP.NET] 直向顯示GridView
說明:一般GridView顯示格式如下:
身份證字號 | 姓名 | 生日
A123456789 A 70/01/01
B123456789 B 90/12/31
若想換成直向顯示,該怎麼做?
身份證字號: A123456789
姓名: A
生日: 70/01/01
身份證字號: B123456789
姓名: B
生日: 90/01/01
解法:
可使用GridView的TemplateFiled,如:
//xxx.aspx
<GridView>
<Columns>
<asp:TemplateFiled>
<ItemTemplate>
<table>
<tr>
<td><asp:Label ID="lblID" runat="server" Text="身份證字號"></asp:Label></td>
<td><asp:TextBox ID="txtID" runat="server" Text='<%# Eval("ID") %>'> </asp:TextBox></td>
</tr>
<tr>
<td><asp:Label ID="lblName" runat="server" Text="姓名"></asp:Label></td>
<td><asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>'> </asp:TextBox></td>
</tr>
<tr>
<td><asp:Label ID="lblBirthday" runat="server" Text="生日"></asp:Label></td>
<td><asp:TextBox ID="txtBirthday" runat="server" Text='<%# Eval("Birthday") %>'> </asp:TextBox></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateFiled>
</Columns>
</GridView>
//xxx.aspx.cs
pivate void Bind()
{
GridView.DataSource = 資料來源;
GridView.DataBind();
}
參考資料:
http://social.msdn.microsoft.com/Forums/zh-TW/b6d70080-3abb-4223-a2cc-1d1177cd6db4/gridview
身份證字號 | 姓名 | 生日
A123456789 A 70/01/01
B123456789 B 90/12/31
若想換成直向顯示,該怎麼做?
身份證字號: A123456789
姓名: A
生日: 70/01/01
身份證字號: B123456789
姓名: B
生日: 90/01/01
解法:
可使用GridView的TemplateFiled,如:
//xxx.aspx
<GridView>
<Columns>
<asp:TemplateFiled>
<ItemTemplate>
<table>
<tr>
<td><asp:Label ID="lblID" runat="server" Text="身份證字號"></asp:Label></td>
<td><asp:TextBox ID="txtID" runat="server" Text='<%# Eval("ID") %>'> </asp:TextBox></td>
</tr>
<tr>
<td><asp:Label ID="lblName" runat="server" Text="姓名"></asp:Label></td>
<td><asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>'> </asp:TextBox></td>
</tr>
<tr>
<td><asp:Label ID="lblBirthday" runat="server" Text="生日"></asp:Label></td>
<td><asp:TextBox ID="txtBirthday" runat="server" Text='<%# Eval("Birthday") %>'> </asp:TextBox></td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateFiled>
</Columns>
</GridView>
//xxx.aspx.cs
pivate void Bind()
{
GridView.DataSource = 資料來源;
GridView.DataBind();
}
參考資料:
http://social.msdn.microsoft.com/Forums/zh-TW/b6d70080-3abb-4223-a2cc-1d1177cd6db4/gridview
[SQL] 自動產生主鍵刪除資料後,主鍵不中斷的小技巧
說明:table內PK為自動產生(SELECT ISNULL(MAX(PK_No), 0) FROM table),現該table有3筆資料,user刪掉第2筆資料,又不想畫面顯示PK_No為1跟3(PK_No中斷)。
解法:
在刪除該table資料後,加上UPDATE table SET PK_No -= 1
WHERE PK_No > 此次刪除的PK_No;
參考資料:
http://www.360doc.com/content/10/0630/19/1554013_36145260.shtml
解法:
在刪除該table資料後,加上UPDATE table SET PK_No -= 1
WHERE PK_No > 此次刪除的PK_No;
參考資料:
http://www.360doc.com/content/10/0630/19/1554013_36145260.shtml
2013年8月29日 星期四
單車單人帶單眼環半島DAY1_2013/4/11(四)
今日預定行程:枋寮火車站->台東太麻里山采家民宿,全程103公里。
實際行程:枋寮火車站->台東金崙美之濱民宿,全程84.97公里,騎乘時間6小時50分。
出發前一天加班與整理裝備,躺在床上已經凌晨3點了囧,
坐小黃(單車已裝進攜車袋)到板橋高鐵搭上7:08往高雄的車後,心想可以補個眠了XD,沒想到桃園站上來一對夫婦,男的台灣人,女的外國人,重點是他們的可愛混血兒一直在哭囧,小嬰兒真是令人又愛又恨呀~哈。
P.S. 單車上高鐵需攜車袋(黑塑膠袋好像也行),先跟售票員要求劃3排椅靠門邊的位置(給我8車20A)。
9:00整到了新左營,10分鐘後台鐵就要發車了,還好下車廂就有電梯,跟一堆人擠進去,順利的搭上往枋寮的莒光號,心情就變得很輕鬆,因為不用背著14公斤的單車加行李?公斤了囧P.S. 台鐵車廂比較窄,車袋暫放出入口有點囧,建議找加掛貨車廂的列車。
10:42分抵達枋寮後,趕緊組裝單車,

敲敲打打(誤)了半小時終於要出發啦~照片請路過大哥拍的,以為我要到墾丁,我說要到台東,他愣了一下說加油XD。
終於出發啦~興奮的我,先停小7買卡打車,再停小7吃涼麵,反正不用花自己錢,心想小7真的旅人的好朋友,偏偏決定離開PIC了QQ,路上還接到家裡問狀況跟同事問程式的電話囧,不過有美景心情總是特別開闊,隨看隨停隨拍。
因此入南迴時已經快14:00了(我還不知道時間太晚了,果然新手又傻又天真),一開始還遇到落山風,才意會到網路上說單車最怕逆風跟上坡是啥意思,哈~
入南迴不到半小時,先拍了離太麻里51公里的標示,還拍了放山雞,此時路況都不錯。
大概是過了雙流後吧,感覺不太一樣了(因此這段沒拍照了XD),路變小了但遊覽車跟砂石車變多了(
遇前方有右彎時先等大車過),此時也遇到熱情的民眾替我加油~有副駕駛side打開車窗的女聲(女生?)、部落的原住民捧友們與騎機車的年輕人,不得不說,身體再疲憊,聽到加油聲,真的會有一股力量湧出來~
一直爬坡,帶的水也快喝完了,幸好途中經過一派出所(鐵馬驛站),進去跟警員打個招呼裝滿水,順便詢問還有多久到南迴最高點,警察大人說快到了,剩不到5公里,新手的我OS: 那應該很快冏,接著警察大人建議我晚上可以睡大武或金崙,小弟我回說,民宿訂在太麻里,應該可以啦~ P.S.此時下午16點忘記幾分...
再上路後開始遇到環島車友(對向),第一次看到總是超興奮,看到對方舉起大拇指後,馬上有樣學樣當下回饋,看到車友在滑下坡了,也激起我的鬥志。
但沒想到離壽卡的短短幾公里這麼難騎,幾乎是騎幾百公尺就停下來休息QQ,而且開始下雨了冏,有些路段四周都沒車,真的有點淒涼XD,就在16:56分終於...
看到這令人動容的景象QQ,旁邊199縣道的休息站此時有3個車友在休息,但我只想一股作氣下到尚武那休息XD, 下坡路段真的有夠爽的~之前沒滑過這麼陡的,時速維持在
40內,途中也有遇到對向車友,此時對方埋頭努力中,我大聲跟他說加油XD,大概半小時抵達小7^0^。
P.S. 以前騎機車走南迴時,都會注意到台9的444公里處,現在開了家小7,有種滄海桑田之感XD

在小7吃點東西(包子跟茶葉蛋,印象中沒吃過小7包子...不好吃)稍作休息後,將近18:00往北走~


當時心裡想說說不到會用到,隨手一拍的結果,竟成我當晚的落腳處冏。

離太平洋好近~也是第一次騎南迴到台東,很難用言語形容的感覺...很感動
後來騎到大武市區天已全黑,當下有閃過今晚睡這的念頭,不過被莫名的自信/自尊心給矇蔽了XD,沒想到接下來這段路成了我旅途難忘的回憶QQ
現在的我回想起來,還會起一絲絲雞皮疙瘩冏,過了大武後的南迴公路完全沒有路燈,記得有一段離大平洋很近,右手邊的海浪聲近在咫尺,海水還飄到我臉上冏(當時沒下雨),路上偶爾有汽車經過,但大部分的時間只有我一個隱身在沒有月光的黑夜QQ,汽車接近時都特別打遠燈,離我遠遠的超過去(我有配備LED前後燈),加上是山路,上上下下根本騎不快,終於在20:00初看到一家全家,真的是黑暗的明燈,沙漠的綠洲呀XD,在這裡吃個布丁跟八寶粥,還在FB po文,此時距民宿28公里,距金崙10公里(店裡有標示),看著店裡的顧客都是開車來的,只有傻子我騎單車QQ。
再次上路約20:40多,這段右手邊都是樹,心裡也不敢亂想只能盡力騎,當下有點後悔好好的家裡那麼舒服不待,沒事幹麼跑來單車環島冏,還有想起古小姐曾叫我從大武火車站騎的建議,不過木已成舟,還好一路平安的在21:20多分抵達金崙小7,馬上查並問了幾家民宿,看到美之濱有車友住過(單車可放室內),且老闆開價500元符合預算,才決定放棄原先預訂的山采家民宿(200元訂金飛了QQ),到民宿登記後,老闆得知我獨自摸黑騎大武市區後到金崙這段15公里的山路,跟我說以後別再摸黑騎那段,因為....(消音),他說如果是他子女這樣騎,他會心酸冏,然後叫我趕快去休息,後來弄到12點才睡覺XD。




訂閱:
文章 (Atom)









