2011年2月8日 星期二

25個功能強大的JQuery特效

逛網站時發現了很棒的JQuery特效,整理的很棒,就收進來嘍~
1. Aything Slider 左右Jquery滑動欄,裡面可以放任意元素,相當強大。
2. Contactable 可以折疊的Jquery留言面板,酷。
3. Display Switch切換圖片的顯示方式
4. Fly To Basket 可以拖拽的購物框,效果不錯。
5. Feature List 非常大氣的Jquery幻燈片切換。國內的很多做網絡公司網站都用這個插件。
6.Accordion彈簧效果的伸縮Jquery菜單,推荐一下,菜單一百分,效果剛剛好。
7. Fading Caption Thumbnail 各種效果的Jquery圖片特效,鼠標經過時顯示文字說明。
8. Hover shift 就叫Jquery晃晃插件吧。當鼠標經過的時候,會晃晃。
9. Simple Slide Panel 可以手動伸縮的Jquery面板。
10. Animated Hover 比較簡單的Jquery懸浮框。
11. Fade In Fade Out 亮度隨鼠標變化的Jquery特效插件,支持圖片,文字,DIV.
12. CSS Sprite way sexy bookmark effect 有點像打地鼠遊戲的特效。
13. Content Scroll – Lightest ever 比較樸素的滑動欄。
14. Sexy Dropdown Jqury下拉菜單,質感不錯。
15.Jquery Sort Vote Jquery選擇排序工具。功能強大啊。
16. Jquery Peeling Effect Jquery撕頁效果。
17. Facebook Like Footer 有點像校內網上的底欄工具。
18. Jquery Flip Jquery 3D切換特效, smashup 出品,太牛X了。
19. Jquery Infinite Page Scroll Jquery頁面自動加長載入插件,推薦你嚐嚐鮮,有沒有見過無限長的頁面?
20. Jquery Timeline Jquery時間軸,這種插件不多,收藏了。
21. Horizontal Accordion非常不錯的水平滑動菜單的javascript特效。
22 Jquery Cool Tooltip Jquery提示插件,不僅可以實現文字和圖片提示條功能,還可以動態加載其它頁面文件,豐富tooltip提示條的內容,而且使用比較簡單,一行代碼即可實現。
23. CSS3 Visual EffectsCSS3快要來臨了,Jquery也能做出你Css3一樣的特效來。
24. Jquery Sticky NotesjStickyNote是一個用於創建電子便條的jQuery插件,能像桌面便條那樣“貼”在你的網站上。可以設置便條大小,拖曳的位置,便條中文字的顏色,拖動的便條會顯示在其它便條的之上。
25. Jquery Sparkline數據小型可視化插件,這個工具他形容三個特點為:”凸現數據顯示,設計簡單,能提供文字大小圖片”。

2010年9月7日 星期二

web.config中參考另一個config檔

在web.config檔的appSettings中加入file屬性,參考另一個config檔,這邊的案例叫做mySetting.config:

appSettings file="mySetting.config"

add key="AAA" value="BBB"

/appSettings

接著我們新增另一個config檔,這部分請務必記得,檔案中只能有appSettings的Tag,其它的設定還是只能訂在web.config中,

?xml version="1.0" encoding="utf-8"?

appSettings

add key="ABC" value="DEF"/

/appSettings


參考來源

2010年5月13日 星期四

Over 60 Free Controls from DevExpress

好用滴 Controls from DevExpress
現在提供申請免費的版本呦~需要的請快點去申請嘍~
http://www.devexpress.com/Products/Free/WebRegistration60/

2010年4月20日 星期二

日前一直遇到session會無故不見了的問題,爬文後找到這篇參考資訊,覺得整理的真的很詳細,為了日後不用再重新去找,所以把它節錄到我的部落格中,也和我的朋友們一同分享

  1. web.config裡的sessionState timeout屬性,單位是分鐘,如果該Session頁面idle超過這個設定,Session值就會不見。
  2. Code裡面執行了清除Session的動作,如Session.Abandon()、Session.Clear()、Session.RemoveAll()
  3. window.open與window.showModalDialog混合使用
  4. 機器名稱含『底線』
  5. IIS Application Pool中處理序數目設定
  6. web.config異動、dll異動、虛擬目錄的刪除與更名導致Dynamic Compilation
  7. Session因為cookieless互相干擾(感謝gipi哥的補充)
  8. 防毒軟體掃瞄(感謝gipi哥的補充)

結論

Session消失的問題,總是很麻煩,
通常都是在User-site的機器,『偶爾』跟『不知道為什麼』會出現Session值掉了的問題,不容易模擬出一樣的環境,
不管是因為時間、機器名稱設定、UI操作行為、IIS站台設定、虛擬目錄架構問題,都是不容易模擬和發現的錯誤。

引用出處來自這位微軟MVP的網誌

javascript的showModalDialog與window.open造成session遺失的問題

Session掉了有很多種可能,

不過如果程式裡面有用到javascript進行開窗的動作,

那就很有可能是因為混著用showModalDialog跟window.open導致session遺失。

簡單來講,就是

ShowModalDialog之後,不能用window.open來開窗,否則新視窗裡面無法讀取Session

簡單的例子,混著用這兩種開窗:

open 代表 window.open
modal 代表 window.showModalDialog


Y = session 還在
N = session 不見了

連續開窗使用方式 Session是否仍然存在
open/open/open Y/Y/Y
modal/modal/modal Y/Y/Y
open/modal/open Y/Y/N
modal/open/modal Y/N/N
open/modal/modal Y/Y/Y


2010年1月20日 星期三

NPOI介紹相關參考資料

在.NET上的POI:NPOI
POI專案本身的處理Office檔案的函式庫,包含Word、Excel、PowerPoint、OutLook、Visio、Publisher等檔案。
參考網址
在Server端存取Excel檔案的利器:NPOI Library
NPOI簡介
NPOI Downloads

2009年11月25日 星期三

2009年11月24日 星期二

IE點選視窗的X時觸發某一事件

=====HTML部分========

加上一個LinkButton




=======JAVASCRIPT========
function onBeforeUnload()
{
__doPostBack('LinkButton1','');
}

=================================
LinkButton1_Click寫進資料庫之類的程式

2009年11月11日 星期三

Oracle 的 @@IDENTIFY 抓 INSERT 的 PK

INSERT INTO TABLE01 (SYS_PK, F1, F2) VALUE( SYS_GUID(), 'xxx', 'yyy') RETURNING SYS_PK INTO :UOTPARAM
再用  ParameterDirection.Output
抓出來

2009年11月8日 星期日

Responses to “Pivoting in SQL using the 10g Model Clause”

here is a performace test i’ve maded on worked_hours.

insert into work_hours select mod(rownum,56),
rownum,mod(rownum,7),1 from dba_objects;

select count(1) from worked_hours;
49647

select weekno
, empno
, mon
, tue
, wed
, thu
, fri
, sat
, sun
from worked_hours
model
return updated rows
partition by (weekno, empno)
dimension by ( day )
measures ( hours, 0 mon, 0 tue, 0 wed, 0 thu, 0 fri, 0 sat, 0 sun)
RULES upsert
(
mon [0] = hours [1]
, tue [0] = hours [2]
, wed [0] = hours [3]
, thu [0] = hours [4]
, fri [0] = hours [5]
, sat [0] = hours [6]
, sun [0] = hours [7]
)
/

Statistics
———————————————————-
10 recursive calls
0 db block gets
184 consistent gets
1260 physical reads
0 redo size
1228664 bytes sent via SQL*Net to client
36900 bytes received via SQL*Net from client
3310 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
49635 rows processed

49635 rows selected.

Elapsed: 00:00:04.21

SQL> select weekno
2 , empno
3 , mon
4 , tue
5 , wed
6 , thu
7 , fri
8 , sat
9 , sun
10 from (
11 select weekno,empno,sum(decode(day,2,hours,0)) mon,
12 sum(decode(day,3,hours,0)) tue
13 ,sum(decode(day,4,hours,0)) wed
14 ,sum(decode(day,5,hours,0)) thu
15 ,sum(decode(day,6,hours,0)) fri
16 ,sum(decode(day,7,hours,0)) sat
17 ,sum(decode(day,7,hours,0)) sun from
18 worked_hours group by weekno,empno)
19 /

49635 rows selected.

Elapsed: 00:00:01.92

Statistics
———————————————————-
4 recursive calls
6 db block gets
184 consistent gets
272 physical reads
0 redo size
943540 bytes sent via SQL*Net to client
36900 bytes received via SQL*Net from client
3310 SQL*Net roundtrips to/from client
0 sorts (memory)
1 sorts (disk)
49635 rows processed

It seems that the old pivot method is better. It seems that the difference connect somehow to phiscal reads.
參考來源

2009年9月1日 星期二

指定button為enter的第一個觸發button

經常希望在登入頁的登入button為key完帳號,密碼後的按enter的第一個觸發button,可是如果在這個button之前有其他的button,那麼,預設的第一個button就會是整個頁面上的第一個,為了解決此問題,可將整頁用panel包起來設定DefaultButton="登入button name"即可讓登入的button為第一個觸發的按鈕.

2009年8月31日 星期一

局部設定responseEncoding

通常我們會因為整個系統中要使用的編碼會設定在web.config中,

但是有時會因為與其他系統的介接需要做response,而對方的系統只吃big5時可以單支指定
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("big5");


context.Response.HeaderEncoding = System.Text.Encoding.GetEncoding("big5");
context.Response.ContentEncoding = System.Text.Encoding.GetEncoding("big5");
context.Response.AppendHeader("Content-Disposition", "attachment;filename=big5");

來做局部設定

2009年8月27日 星期四

如何查看w3wp.exe是在執行那個站台

1.在cmd下打Iisapp 即會顯示目前在運作的 w3wp.exe 所屬的 PID 及對應的集區,
集區會因為還沒回收等...會有重複,但可透過PID來對應工作管理員的處理程序。
如:
W3WP.exe PID: 5716 AppPoolid:eCampus3P
W3WP.exe PID: 5710 AppPoolid:eCampus3
2.再開啟工作管理員=>檢視=>選擇欄位=>勾選PID即可得知目前正在執行的w3wp.exe是在執行那個站台,可由應用集區來做區分,再依佔用的資源量判斷是否需要再做調整

參考資料:
Iisapp.vbs:IIS 應用程式查詢指令檔

2009年8月26日 星期三

windows7的IIS管理員放在那裡

要顯示系統管理工具,在下方工具列空白處點選滑鼠右鍵,選內容
在開始功能表,點選自訂
找到系統管理工具,選擇顯示所有程式功能表
在開始->程式集中就會看到系統管理工具
參考資料:
WINDOWS7預設是不安裝IIS7的

2009年8月17日 星期一

取固定長度的顯示字串

///
/// 取固定長度的顯示字串
///

/// 原始字串
/// 最大長度
///
public string ShowString(string strOri, int iMax)
{
string strResult;
int n;

strResult = "";
n = 0;

for (int i = 0; i < strOri.Length; i++)
{
char ch = strOri[i];

if (ch >= 'a' && ch <= 'z')
{
n += 1;
}
else if (ch >= 'A' && ch <= 'Z')
{
n += 2;
}
else
n += 3;

if (n >= (iMax - 2) * 3)
break;

strResult += strOri[i];
}

if (strResult.Length < strOri.Length)
strResult += "...";
return strResult;

}

2008年7月28日 星期一

圖片寬度大於600像素,都強制顯示為200像素寬,高則是跟隨寬度等比例縮小

在<head>...</head>裡置入下列指令:
<style type="text/css">
img {width:expression(this.width>600?"200px":this.width+"px");}
</style>

圖片寬度大於600像素,都強制顯示為200像素寬,高則是跟隨寬度等比例縮小適合用在讓 user 自行上傳的頁面,美化頁面用,圖檔 k 數不會縮小

JavaScript 取用 ASP.Net 2.0 的 RadioButtonList 與 CheckBoxList

function getRadioButtonList(){
var radioObj = document.getElementById("<%=RadioButtonList1.ClientID %>");
var radioList = radioObj.getElementsByTagName('input');

for(var i = 0; i < radioList.length; i++)
{
if(radioList[i].checked)
{
alert(radioList[i].value);
}
}
}

function getCheckBoxList(){
var cboxObj = document.getElementById("<%=CheckBoxList1.ClientID %>");
var cboxList = cboxObj.getElementsByTagName('input');
var lbList = cboxObj.getElementsByTagName('label');

for(var i = 0; i < cboxList.length; i++)
{
if(cboxList[i].checked)
{
alert(lbList[i].innerText);
}
}
}

2008年7月25日 星期五

動態產生註冊文字圖檔

void BuildDynamicPic(string AvgRating)
{
if (AvgRating == null AvgRating.Length == 0) AvgRating = "0";
// 圖形
System.Drawing.Bitmap BMP1 = new System.Drawing.Bitmap(Server.MapPath("~/images/placeholder-100.jpg"));
//-----------------------------------------------------------------
//畫出文字
//-----------------------------------------------------------------

//定義繪圖元件
System.Drawing.Graphics formGraphics = System.Drawing.Graphics.FromImage(BMP1);

System.Drawing.Font drawFont = new System.Drawing.Font("John Handy LET", 32);
//定義筆刷
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);
Single X = (AvgRating.Length > 1) ? 5 : 22;
Single Y = 15;
System.Drawing.StringFormat drawFormat = new System.Drawing.StringFormat();
//繪製文字
formGraphics.DrawString(AvgRating, drawFont, drawBrush, X, Y, drawFormat);
drawFont.Dispose();
drawBrush.Dispose();
formGraphics.Dispose();
//從另一張網頁 ShowBitmap 輸出
Session["BMP1"] = BMP1;
//在最後加入Guid是為了解決圖檔放在updatepanel中做非同步時該圖檔也要觸發重新抓取
imgAvgRating.ImageUrl = "ShowBitmap.aspx?imgID=BMP1&r=" + Guid.NewGuid().ToString();
imgAvgRating.Visible = true;
}


//在ShowBipmap.aspx.cs的Page_Load寫上
protected void Page_Load(object sender, EventArgs e)
{
System.Drawing.Bitmap BMP ;
BMP = (System.Drawing.Bitmap)Session[Request["imgID"].ToString()];
BMP.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
BMP.Dispose();
Response.End();
}


結果

2008年7月24日 星期四

Javascript處理數字國字

var stmp = "";
function nst(t)
{
if(t.value==stmp) return;//如果等於上次輸入則返回
var ms = t.value.replace(/[^\d\.]/g,"").replace(/(\.\d{2}).+$/,"$1").replace(/^0+([1-9])/,"$1").replace(/^0+$/,"0");
//replace(/[^\d\.]/g,"")去掉輸入當中不是數字和.的字元
//replace(/(\.\d{2}).+$/,"$1")
//匹配從字元開始的第一個.後面的所有字元,由於沒有使用g標記,
//所以只匹配開始第一次 然後用小數點和後兩位進行替換以確定數值最後的格式正確 高.
//replace(/^0+([1-9])/,"$1") 匹配以多個0開頭的數值替換為去掉0後的數值做為數字的第一位 也是匹配開始的一次.
//replace(/^0+$/,"0") 匹配以0開始和結束的多個0為一個0 也就是0000000 輸入->轉換成一個0
//以下確定輸入的為過濾後的合法數位
//alert(ms);
var txt = ms.split(".");
//alert(txt[0]);
//如果ms值不小數點存在則txt[0]=小數點前的值否則等於ms
//regexp:/\d{4}(,|$)/ 匹配四位元數位和,的集合或者四位元數位和字元結尾的集合
while(/\d{4}(,|$)/.test(txt[0]))//如果為txt[0]=4123
txt[0] = txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2");
//txt[0].replace(/(\d)(\d{3}(,|$))/,"$1,$2")是將txt[0]進行替換後再賦給它
//regexp:/(\d)(\d{3}(,|$))/ 將四個數字份為兩組第一個數字為第一位,後三位和其他結尾為每二位
//並替換成 第一位,第二位 注意 ,的使用很好. 也就是將4123先替換成4,123
//由於此運算式默認採用貪婪匹配所以從數值後向前匹配再通過迴圈進行再匹配替換從而可以將
//12345678分成你想要的123,456,78 樓主彩用(,|$)很精典,因為它略去了第二次匹配時的,問題
t.value = stmp = txt[0]+(txt.length>1?"."+txt[1]:"");
//最終賦值到輸入框中
//如果有小數點則加上並購成最終數位否則顯示替換後的txt[0]
bbb.value = number2num1(ms-0);
//將ms轉換為數位送到number2num1去轉換
}

function number2num1(strg)
{
var number = Math.round(strg*100)/100;
//先進行小數位數轉換也就是四捨五入由於上面已限定了小數位可不用
number = number.toString(10).split('.');//轉換成十進位字元並用小數點隔開
var a = number[0];//取小數點前的值如果有小數點則取它前面的否則取這個數值
if (a.length > 12)//判斷是否超過了計算範圍
return "數值超出範圍!支持的最大數值為 999999999999.99";//退出
var e = "零壹貳參肆伍陸柒捌玖";
var num1 = "";
var len = a.length-1;
for (var i=0 ; i<=len; i++)//按單個數位逐個進行遍歷
num1 += e.charAt(parseInt(a.charAt(i))) + [["圓","萬","億"][Math.floor((len-i)/4)],"拾","佰","仟"][(len-i)%4];
//e.charAt(parseInt(a.charAt(i)))將所選數字對應到相應的大寫陣列下標並取出大寫值
//[["圓","萬","億"][Math.floor((len-i)/4)],"拾","佰","仟"][(len-i)%4]
// ["圓","萬","億"][Math.floor((len-i)/4)]如果小於4位元顯示 "圓"
// 如果大於4位元小於8位元則顯示 "萬"
// 如果大於8位元則顯示 "億"
//由上面得到一個新陣列 -> 如果小於4位元顯示 ["圓","拾","佰","仟"]
// 如果大於4位元小於8位元則顯示 ["萬","拾","佰","仟"]
// 如果大於8位元則顯示 ["億","拾","佰","仟"]
// [(len-i)%4] 得到相應的所屬下標 分別得到 "圓","萬","億","拾","佰","仟
//下面處理小數點後的數值
if(number.length==2 && number[1]!="")
{
var a = number[1];//得到.後數值
for (var i=0 ; i num1 += e.charAt(parseInt(a.charAt(i))) + ["角","分"];
}
//以上完成後再進行正則過濾掉一些重複字元
num1 = num1.replace(/零佰|零拾|零仟|零角/g,"零");//全域替換零
num1 = num1.replace(/零{2,}/g,"零");//替換2個以上零為一個零
num1 = num1.replace(/零(?=圓|萬|億)/g,"");//替換零圓,零萬,零億,中的零為空
num1 = num1.replace(/億萬/,"億");//替換億萬為億隻替換第一次
num1 = num1.replace(/^圓零?/,"");//替換字串中開始的圓零為空此匹配為非貪婪匹配.適用於.57轉換時
//如果要最終數值不為空並且該串結尾不為"分"結尾則加一個"整字"
if(num1!="" && !/分$/.test(num1))
num1 += "整";
return num1;
}


數字金額:

國字金額: