首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|M| 第三贴: 数据绑定时不绑定某条件的行要怎么处理 现在可以了,看看小弟我理解的对不对

2012-02-04 
|M| 第三贴: 数据绑定时不绑定某条件的行要怎么办 现在可以了,看看我理解的对不对if(e.Row.RowTypeDataC

|M| 第三贴: 数据绑定时不绑定某条件的行要怎么办 现在可以了,看看我理解的对不对
if   (e.Row.RowType   ==   DataControlRowType.DataRow)
{
        DataGrid   dg1   =   new   DataGrid();
        DataTable   dt   =   ((DataRowView)e.Row.DataItem).DataView.Table;
        dg1.DataSource   =   new   DataView(dt);
        dg1.DataBind();
        Page.Controls.Add(dg1);
}
像上面的代码以我的理解我一般是这样写的
dg1.DataSource   =   ((DataRowView)e.Row.DataItem).DataView.Table
取得当前DataRow.父级DataView.的Table   //这里好像是这个意思
但这样不行
DataTable   dt   =   ((DataRowView)e.Row.DataItem).DataView.Table;
dg1.DataSource   =   new   DataView(dt);
后来这是幕白兄的代码
以我的理解是这里多了一个new   DataView()
也就是得到那个Table的时候让他做一个新的DataView
因为如果不这样写的话绑定到dg1的还是原来的那个dv

最后再问一下:
是不是控件绑定的时候都是绑定到DataView这种形式如
dg.DataSource=dataset
dg.DataSource=datatable
dg.DataSource=dataview
上面的三条绑定的时候是不是自动变成
dg.DataSource=dataset.Table[0].dafdultview;
dg.DataSource=datatable.dafdultview;
dg.DataSource=dataview
这种形式,也就是说最后绑定的都是DataView

还有一个就是new   DataView(dt);
就新的一个dv的话那我用
DataTable   dt   =   ((DataRowView)e.Row.DataItem).DataView.Table;
DataView   dv1   =   dt.DefaultView;
也是应该可以的啊
是不是dt.DefaultView取到的是原来绑定的那个dv呢

[解决办法]

[解决办法]
up
[解决办法]
像上面的代码以我的理解我一般是这样写的
dg1.DataSource = ((DataRowView)e.Row.DataItem).DataView.Table
取得当前DataRow.父级DataView.的Table //这里好像是这个意思
但这样不行
DataTable dt = ((DataRowView)e.Row.DataItem).DataView.Table;
dg1.DataSource = new DataView(dt);
后来这是幕白兄的代码
以我的理解是这里多了一个new DataView()
也就是得到那个Table的时候让他做一个新的DataView
因为如果不这样写的话绑定到dg1的还是原来的那个dv
--------------
正解

dg1.DataSource = new DataView(dt);
----------
邦定哪个表就看这句话,写上就把DataSource变成表dt了
显示的自然就是dt的内容

[解决办法]
理解正确。它会默认绑定它的defaultView.
[解决办法]
上面的三条绑定的时候是不是自动变成
dg.DataSource=dataset.Table[0].dafdultview;
dg.DataSource=datatable.dafdultview;
dg.DataSource=dataview
这种形式,也就是说最后绑定的都是DataView

这个是很正确的。

热点排行