2008年7月29日 星期二

ASP.NET程序中常用代碼匯總

1. 打開新的窗口並傳送參數︰

//傳送參數︰
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="++"’)</script>")
  //接收參數︰
string a = Request.QueryString("id");
string b = Request.QueryString("id1");

2.為按鈕添加對話框

Button1.Attributes.Add("onclick","return confirm(’確認?’)");
button.attributes.add("onclick","if(confirm(’are you sure?’)){return true;}else{return false;}")

3.刪除表格選定記錄

int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()

4.刪除表格記錄警告

private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
 switch(e.Item.ItemType)
 {
  case ListItemType.Item :
  case ListItemType.AlternatingItem :
  case ListItemType.EditItem:
   TableCell myTableCell;
   myTableCell = e.Item.Cells[14];
   LinkButton myDeleteButton ;
   myDeleteButton = (LinkButton)myTableCell.Controls[0];
   myDeleteButton.Attributes.Add("onclick","return confirm(’您是否確定要刪除這條信息’);");
   break;
  default:
   break;
 }
}

5.點擊表格行鏈接另一頁

private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 //點擊表格打開
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  e.Item.Attributes.Add("onclick","window.open(’Default.aspx?id=" + e.Item.Cells[0].Text + "’);");
}
  //雙擊表格連接到另一頁
  //在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add("ondblclick", "location.href=’../ShippedGrid.aspx?id=" + OrderItemID + "’");
}
//雙擊表格打開新一頁
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 
 e.item.Attributes.Add("ondblclick", "open(’../ShippedGrid.aspx?id=" + OrderItemID + "’)");
}
  ★特別注意︰【?id=】 處不能為 【?id =】

6.表格超連接列傳遞參數

<asp:HyperLinkColumn Target="_blank" headertext="ID號" DataTextField="id" NavigateUrl="aaa.aspx?id=’
 <%# DataBinder.Eval(Container.DataItem, "數據字段1")%>’ & name=’<%# DataBinder.Eval(Container.DataItem, "數據字段2")%>’ />

7.表格點擊改變顏色

if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
 e.Item.Attributes.Add("onclick","this.style.backgroundColor=’#99cc00’;
    this.style.color=’buttontext’;this.style.cursor=’default’;");
}
  寫在DataGrid的_ItemDataBound里
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=’#99cc00’;
   this.style.color=’buttontext’;this.style.cursor=’default’;");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=’’;this.style.color=’’;");
}

8.關于日期格式

日期格式設定
DataFormatString="{0:yyyy-MM-dd}"
  //我覺得應該在itembound事件中
e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))

9.獲取錯誤信息並到指定頁面

//不要使用Response.Redirect,而應該使用Server.Transfer
  e.g
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");

//其余的非HttpUnhandledException異常交給ASP.NET自己處理就okay了 :)
}
  //Redirect會導致post-back的產生從而丟失了錯誤信息,所以頁面導向應該直接在服務器端執行,這樣就可以在錯誤處理頁面得到出錯信息並進行相應的處理

10.清空Cookie

Cookie.Expires=[DateTime];
Response.Cookies("UserName").Expires = 0

LOCK StorageWrite reg(關閉/開啟 Usb 儲存裝置)

==========Disable

Windows Registry Editor Version 5.00



[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies]

"WriteProtect"=dword:00000001




===========Enable

Windows Registry Editor Version 5.00



[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies]

"WriteProtect"=dword:00000000

2008年7月16日 星期三

[Javascript] escape & encodeURI & encodeURIComponent

escape() will not encode: @*/+
encodeURI() will not encode: ~!@#$&*()=:/,;?+'
encodeURIComponent() will not encode: ~!*()'

http://blog.terac.com/andy/e_181.html

http://xkr.us/articles/javascript/encode-compare/

http://www.chedong.com/blog/archives/000828.html


http://www.hipaza.com/viewtopic.php?t=1306&start=0&postdays=0&postorder=asc&highlight=&sid=5abc13a79a755c58a5a73648cf9da560

[VB] OrElse 及 AndAlso 運算子

在 VB.NET 中,一般的判斷式都會使用到 Or 及 And 運算子,可是比較少人知道它們還有二個相對應的 OrElse 及 AndAlso 運算子。一般而言,筆者會建議所有的判斷式都使用 OrElse 來取代 Or 運算子,使用 AndAlso 來取代 And 運算子。為什麼呢?因為 OrElse 及 AndAlso 運算子的執行效能會優於 Or 及 And 運算子,以下就來說明其中的原由。

http://blog.blueshop.com.tw/jeff377/archive/2007/11/15/53351.aspx

日期轉換 yyyy/MM/dd → yyyyMMdd (SQL)

(case when EXPRESS_Date is null or rtrim(EXPRESS_Date) = ''

then '' else replace(Convert(Char(10),Convert(DateTime , EXPRESS_Date, 111),111),'/','') end)