dataview 只能对于datatable作用。
可建立多个dataview,再进行一一绑定,但是,数据的同步,是随着每个绑定的组件绑定值的changed事件而改变。很难控制。

解决方案 »

  1.   

    我建立的就是多个dataview,总是提示“无法绑定到新的值成员”
      

  2.   

    ds = this.remotePortal.GetDocFlowNodesList( this.docFlowID );DataRow dr = ds.Tables[ 0 ].NewRow();
    dr[ "ID" ] = "0";
    dr[ "Name" ] = "--请选择--";
    ds.Tables[ 0 ].Rows.Add( dr );
    ds.AcceptChanges();DataView []dv = new DataView[ 32 ] ;
    int i = 0 ;for (i = 0 ; i< dv.Length / dv.Rank ; i++)
    {
    dv[ i ] = ds.Tables[ 0 ].Copy().DefaultView;//.Clone().DefaultView;
    dv[ i ].Sort = " ID ASC ";
    }i = 0;
      

  3.   

    ds = this.remotePortal.GetDocFlowNodesList( this.docFlowID );DataRow dr = ds.Tables[ 0 ].NewRow();
    dr[ "ID" ] = "0";
    dr[ "Name" ] = "--请选择--";
    ds.Tables[ 0 ].Rows.Add( dr );
    ds.AcceptChanges();DataView []dv = new DataView[ 32 ] ;
    int i = 0 ;for (i = 0 ; i< dv.Length / dv.Rank ; i++)
    {
    dv[ i ] = ds.Tables[ 0 ].Copy().DefaultView;//.Clone().DefaultView;
    dv[ i ].Sort = " ID ASC ";
    }i = 0;foreach( System.Windows.Forms.Control ct in tpTransSend.Controls )
    {
    switch(ct.GetType().ToString())
    {
    case "System.Windows.Forms.ComboBox" : ((System.Windows.Forms.ComboBox)ct).DataSource = dv[ i++ ];
    ((System.Windows.Forms.ComboBox)ct).DisplayMember = "Name";
    ((System.Windows.Forms.ComboBox)ct).ValueMember = "ID";
    ((System.Windows.Forms.ComboBox)ct).SelectedValue = 0;
    break;
    default:
    break;
    }
    }
      

  4.   

    ds.AcceptChanges();

    dv[ i ] = ds.Tables[ 0 ].Copy().DefaultView;//.Clone().DefaultView;
    这端代码有问题,绑定到多个dataView你就不能使dataSet可修改,因为这涉及一个数据同步问题,除非你的DataSet中的每一个DataTable绑定在不同的DataView上;
    如果一个表绑在多个DataView上,请注释掉ds.AcceptChanges();
    修改:
    dv[i].DataSource=ds.Table[0];
    dv[i].DataBinding();
      

  5.   

    dv[ i ] = new DataView(ds.Tables[ 0 ]) :
    dv[ i ].Sort = " ID ASC ";