2017年2月28日 星期二

Page.MaintainScrollPositionOnPostBack 屬性

https://msdn.microsoft.com/zh-tw/library/system.web.ui.page.maintainscrollpositiononpostback(v=vs.110).aspx

取得或設定值,這個值表示是否要讓使用者在回傳後返回用戶端瀏覽器中的相同位置。 這個屬性會取代過時 SmartNavigation 屬性。

可以加在aspx或cs檔
也可以加在Web.config全站適用


ref:
如何讓網頁在 PostBack 後,回到原來停留的位置

讓Chrome瀏覽器支援MaintainScrollPositionOnPostback屬性


EnableSortingAndPagingCallbacks

GridView.EnableSortingAndPagingCallbacks 屬性
https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.gridview.enablesortingandpagingcallbacks(v=vs.110).aspx

不能和select搭配使用
否則執行或有以下錯誤訊息:
啟用選取按鈕時 CommandField 不支援回呼,因為回呼中不會更新頁面上需依賴 'GridView1' 選取值才能呈現的其他控制項。請關閉 'GridView1' 上的回呼功能。


DataFormatString

{0:d} => 使用Windows的文化語系設定來呈現

{0:dd/MM/yyyy} =>使用自己設定的格式  (MM是大寫,MM會補0,M不補0)

中文 => {0:yyyy年MM月dd日}
星期幾 => {0:ddd}
時分秒 => {0:HH:mm:ss} (mm是小寫)


2017年2月27日 星期一

GridView是ASP.NET 2.0之後才有的

GridView是ASP.NET 2.0之後才有的,取代ASP.NET 1.X的DataGrid
和DetailsView、FormView不同之處,GridView沒有AutoGenerateInsertButton類似屬性,GridView要達成類似功能需搭配EmptyDataTemplate樣板(ASP.NET學習教材:使用C#第二版第9-9頁),把DefaultMode修改成Insert(第9-12頁)
GridView多了「樞紐分析表選取模式」

GridView的CRUD相關屬性:
 AutoGenerateDeleteButton、AutoGenerateEditButton、AutoGenerateSelectButton
https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.gridview(v=vs.110).aspx

DetailsView的CRUD相關屬性:
AutoGenerateDeleteButton、AutoGenerateEditButton、AutoGenerateInsertButton
https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.detailsview(v=vs.110).aspx

FormView的CRUD相關屬性
需使用Template,ItemTemplateEditItem TemplateInsertItem Template
在「FormView工作」(英文版:FormView Tasks)智慧標籤(Smart Tag)點選「編輯樣板」(英文版:Edit Templates)
https://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.formview(v=vs.110).aspx



2017年2月24日 星期五

GridView的ShowHeaderWhenEmpty屬性(無資料仍然顯示表頭)

ShowHeaderWhenEmpty屬性從.NET 4.0(Visual Studio 2010)之後出現
需和EmptyDataTemplate搭配使用

2017年2月20日 星期一

單選、複選

單選:
DropDownList
ListBox (SelectMode屬性為Single)
RadioButtonList


複選:
ListBox (SelectMode屬性為Multiple)
CheckBoxList

2017年2月17日 星期五

2017年2月15日 星期三

將Label的數字加總成金額輸出

int sum = Convert.ToInt32(TextBox1.Text) + Convert.ToInt32(TextBox2.Text);
lblSum.Text = String.Format("{0:C}",sum);
//0表示第一個變數,也就是sum
//C表示Currency

//另一個寫法
//lblSum.Text = String.Format("{0:NT$ #,### ; -NT$ #,###}", sum);

AutoPostBack屬性

部分控制項才有這屬性
內容變更自動丟給Web Server
使用者不需要Submit

ASP.NET支援HTML5

從.NET 4.5和VS 2012開始

2017年2月12日 星期日

if(!Page.IsPostBack)

if(!Page.IsPostBack)表示第一次載入網頁才會執行
因為按下Button按鈕等會不斷地回傳,不斷地觸發Page_Load事件,所以要判斷

VB:
If Not Page.IsPostBack Then

Convert.ToInt32(Request["UID"])

int aid = Convert.ToInt32(Request["UID"]);

把使用者HttpRequest的 test.asxp?UID=7轉成int

Response.End()停止後面的程式碼執行

應該是類似WinForm的Application.Exit()吧?

.Redirect()和Server.Transfer()差異

.Redirect() => 可以導到其他網站

Server.Transfer() => 只能同一網站內

DetailsView和FormView的差別

DetailsView:
ASP.NET 2.0出現,畫面事先設計好,可以直接拿來使用

FormView:
以樣板(Template)為主,畫面上設計的彈性比較高