ASP.NET數據綁定控件比較淺析
ASP.NET數據控件之數據綁定控件比較(Reapter\DataList\GridView\DatailsView\FormView)都有哪些方面呢?讓我們開始講解:
ASP.NET數據控件之數據綁定控件比較1.插入功能方面:
DetailsView和FormView具有插入功能,其它控件沒有
ASP.NET數據控件之數據綁定控件比較2.模板
DataList\FormView\Repeater三種必須編輯模板,而
GridView和DetailsView只有在將列轉換成模板列以后才會出現各種模板.
ASP.NET數據控件之數據綁定控件比較3.自動分頁功能
GridView ,DetailsView和FormView都是2.0版本新增控件,內置了分頁,排序等等功能,
其他需要手工定義
ASP.NET數據控件之數據綁定控件比較4.數據呈現方式:
GridView,DataList,Repeator用于呈現多列數據,
DetailsView,FormView用于呈現單列數據,即常用的數據明細.
DataList和Reapter都需要編輯模板列,而在模板列當中可以添加TextBox,同時可以指定TextBox的ID從而實現提取用戶輸入的值,但是DataGrid和GridView兩個件是不需要編輯模板的,它的編輯功能是自動生成的我們無法知道那些文本框的ID,也就無法通過ID來獲取用戶的輸入,那么可以通過對單元格的引用來實現:
- private void DataGrid1_UpdateCommand(object source,xx)
- {
- string bkid=DataGrid1.DataKeys[e.Item.ItemIndex].toString();//提取主鍵
- string bktitle=((TextBox)e.Item.Cells[1].Controls[0]).Text;//提取用戶的輸入
- }
ASP.NET數據綁定控件實際區別一.進入編輯狀態:
- DataList1.EditItemIndex = e.Item.ItemIndex;
- DataGrid1.EditItemIndex = e.Item.ItemIndex;
- GridView1.EditIndex = e.NewEditIndex;
- DetailsView1.ChangeMode(DetailsViewMode.Edit);//進入編輯狀態
- DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);//退出編輯狀態
ASP.NET數據綁定控件實際區別二.設置主鍵:
- DataList1.DataKeyField = "bkid";
- DataGrid1.DataKeyField = "bkid";
- string[] str={"bkid"};
- GridView1.DataKeyNames = str;
ASP.NET數據綁定控件實際區別三.提取主鍵:
- string bkid = DataList1.DataKeys[e.Item.ItemIndex].ToString();//DataList
- string bkid = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//DataGrid
- string bkid = GridView1.DataKeys[e.RowIndex].Value.ToString();//GridView
- string bkid = DetailsView1.DataKey[0].ToString();
ASP.NET數據綁定控件實際區別四.查找控件:
- string bktitle = ((TextBox)e.Item.FindControl("txtTile")).Text;//DataList
- string bktitle = ((TextBox)e.Item.Cells[1].Controls[0]).Text;//DataGrid
- string bktitle = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
- string bktitle = ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text;
注意查找控件有兩種方法:(各數據綁定控件的都可以用下面兩種方法進行查找)
1.如果知道控件的ID可以用這種方法
((TextBox)e.Item.FindControl("txtTile")).Text;//這是查找
2.如果不知道控件的ID可用這種方法
((TextBox)e.Item.Cells[1].Controls[0]).Text;//這是索引
ASP.NET數據綁定控件實際區別五.給刪除按鈕添加確認:
- protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
- {
- if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
- {
- LinkButton lbtn =(LinkButton) e.Item.FindControl("lbtndelete");
- lbtn.Attributes.Add("OnClick","return confirm(‘確定要刪除嗎?‘)");
- }
- }
- protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e)
- {
- if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
- {
- LinkButton lbtn = (LinkButton)e.Item.Cells[3].Controls[0];
- lbtn.Attributes.Add("OnClick","return confirm(‘確認刪除?‘)");
- }
- }
- protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
- {
- if(e.Row.RowType== DataControlRowType.DataRow)
- {
- string strid = e.Row.Cells[0].Text;//獲取***行的字段值;
- e.Row.Cells[3].Attributes.Add("OnClick", "return confirm(‘確認刪除\""+strid+"\"?‘)");
- //用了兩個轉義符將***列的值用引號括起來,注意轉義符后面一個將不被解釋,是直接放上去;
- }
- }
ASP.NET數據綁定控件比較的基本情況就向你介紹到這里,希望對你理解ASP.NET數據綁定控件比較有所幫助。
【編輯推薦】