数据绑定控件比较 (Reapter\\DataList\\GridView\\DatailsView\\FormView): 1. 插入功能方面 :
DetailsView 和 FormView 具有插入功能 ,其它控件没有 2. 模板
DataList\\FormView\\Repeater 三种必须编辑模板 ,而
GridView 和 DetailsView 只有在将列转换成模板列以后才会出现各种模板 . 3. 自动分页功能
GridView ,DetailsView 和 FormView 都是 2.0 版本新增控件 ,内置了分页 ,排序等等功能 其
他需要手工定义
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;// 提取用户的输入
}
一. 进入编辑状态:
DataList1.EditItemIndex = e.Item.ItemIndex; DataGrid1.EditItemIndex = e.Item.ItemIndex; GridView1.EditIndex = e.NewEditIndex;
DetailsView1.ChangeMode(DetailsViewMode.Edit);// 进入编辑状态 DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);// 退出编辑状态
二. 设置主键 :
DataList1.DataKeyField = \DataGrid1.DataKeyField = \string[] str={\
GridView1.DataKeyNames = str;
三. 提取主键:
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();
四. 查找控件:
string bktitle = ((TextBox)e.Item.FindControl(\
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(\这是查
找 2.如果不知道控件的 ID 可用这种方法 ((TextBox)e.Item.Cells[1].Controls[0]).Text;// 这是索引
五. 给删除按钮添加确认 :
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(\
lbtn.Attributes.Add(\‘确定要删除吗 ?‘ )\
}
}
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(\‘确认删除?‘ )\
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(\‘ 确 认 删 除 \\\?‘ )\
//用了两个转义符将第一列的值用引号括起来 ,注意转义符后面一个将不
被解
释,是直接放上去 ;
}
}
ASP.NET 程序中常用的三十三种代码 (1)
1. 打开新的窗口并传送参数: 传送参数: response.write(\v script >
window.open( ' ASPx?id=\&id1=\
接收参数:
v /script > ))
string a = Request.QueryString(\
string b = Request.QueryString(\
2.
为按钮添加对话框
Button1.Attributes.Add(\button.attributes.add(\sure...? ')){return true;}else{return false;}\
3.
删除表格选定记录
'确认 ?')\'are you
int intEmplD = (int)MyDataGrid.DataKeys[e.ltem.ltemlndex]; string deleteCmd = \
4.
删除表格记录警告
private void DataGrid_ltemCreated(Object sender,DataGridltemEventArgs e)
{
switch(e.ltem.ltemType)
{
case ListltemType.ltem :
case ListltemType.Alternatingltem : case ListItemType.EditItem:
TableCell myTableCell; myTableCell = e.Item.Cells[14]; LinkButton myDeleteButton ;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add(\'您是 否确定要删除这条信息' );\
break; default: break;
} }