隨著系統的慢慢完備,需要做到的功能也越來越多,畫面也要更方便些,所以又多了一些東西可以記錄一下的。
12. GridView的新增、修改、刪除按鈕的應用(1):在設定GridView的時候,可以加入CommandField,來做新增、修改、刪除。不過這個裡面的新增是跛腳的新增,怎麼說呢?只有能夠插入的Data控制項才能夠使用這個功能(如DetailView等),那對於要新增就要做一點方式來處理了。
首先對於CommandField,開啟了相關的按鈕。
接下來對OnRowCommand這個Event的Handler做一下處理。
1 | protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) |
這邊可以說明一下:新增的部份,CommandName是New,然後在抓到這個Event的時候,Bind一個空的DataSourceID給GridView,做什麼用呢?為了要觸發EmptyDataRow的Event,好在EmptyDataTemplate裡寫要新增的資料表格。
在EmptyDataTemplate裡做一個DetailsView來做新增的表格。
最後就只要Handle OnItemInsertring Event就好了。記得要Bind回去正確的DataSource給原來的GridView,不要又跑到空的新增畫面。
13. GridView的新增、修改、刪除按鈕的應用(2):對於修改的部份,就不用上述那麼麻煩了,只要注意OnRowDataBound適時的Bind相關資訊,以及OnRowEditing轉換狀態,OnRowCancelingEdit取消編輯。但是在OnRowDataBound的時候,因為GridView原始的設計,導致在單數列可以以DataControlRowState.Edit,但是在雙數列的部份會變成DataControlRowState.Edit | DataControlRowState.Alternate兩個參數互相連集關係,所以在偵測(GridViewRowEventArgs.Row.RowState)是否要修改某列時,要注意考慮到上面情況。
14. DropDownList.aspx)的SelectXXX屬性的真義:DropDownList會常常在程式裡用到,通常也會根據一些特殊情況設定相關屬性,但是有時候可能會搞錯相關的意義,經過一些測試才知道問題在哪。以下就是相關說明。
- SelectedIndex:選取的那個東西的Index,可以設定。
- SelectedValue:選取的那個東西的Value,可以設定。
- SelectedItem:這個不是被選到東西的Item喔,是取得清單控制項中具有最低索引的選取項目,不能去設定,這個就是我常搞錯的地方。
所以基本上來說,有Index或Value就能設定DropDownList。但是好像沒有看Text設定的(原來以為SelectedItem可以),那有沒有變通方法呢?
如果你能確定你的DropDownList的Text都是獨一無二的,那可以使用DropDownList.Items.FindByText()來得到ListItem,再拿該Instance的Value去指定DropDownList。
1 | DDL2.SelectedValue = DDL2.Items.FindByText("data").Value; |
15. 控制項的Parent概念:基本上ASP.NET網頁裡的控制項都有階層關係,有時候在某一些階段裡的Event Handler無法取得相關的Instance。這時候就需要Parent來取得相關資訊。譬如說在12裡提到的方法,裡面有個DropDownList,想要取得當時的DetailsView,就可以用連續的Parent取得。不過仍然是要看當時的架構而定。
1 | DetailsView gvr = (DetailsView)DDL2.Parent.Parent.Parent.Parent |
原來的Layout像這樣。
所以DDL2->TableCell->TableRow->Table->DetailsView,像這樣就能得到其他的Instance了。
- 留言者: 米斯特‧載卡多
- Email: 網址: 日期: 2010-08-04 22:00:28
應該可以,Dropdownlist的ListItem本身就可視為陣列,可以利用相關的方式來搜詢你要的文字
- 留言者: 小蘇
- Email: 網址: 日期: 2010-08-04 22:20:53
是沒錯啦,不過他是Listcontrol集合, 需要看text才知道index(需要iterative find),但是用FindByText()就直接完成了~
- 留言者: 米斯特‧載卡多
- Email: 網址: 日期: 2010-07-30 02:50:50
引用【…,有Index或Value就能設定DropDownList。但是好像沒有看Text設定的…】
DropDownList的Item設定是
dropdownlistDemo.item(i).text = “就這樣”
- 留言者: 小蘇
- Email: 網址: 日期: 2010-08-01 12:44:54
恩恩,這個是設定item文字的,但我內容是寫要從item找是哪個值,您這樣寫只是設定值喔~