• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

asp.net数据控件数据绑定控件比较

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

数据绑定控件比较(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 = "bkid";
DataGrid1.DataKeyField = "bkid";

string[] str={"bkid"};
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("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;//这是索引


五.给删除按钮添加确认:
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+"\"?‘)");
             //用了两个转义符将第一列的值用引号括起来,注意转义符后面一个将不被解释,是直接放上去;

         }
     }


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ASP.NET2.0中轻松实现网站换肤发布时间:2022-07-10
下一篇:
ASP.NET 授权与角色 Part.1(URL授权、代码授权)发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap