WinForm中,如何为DataSource为DataView的DataGrid创建TableStyles,或者是过滤DataSource为DataSet的DataGrid?

解决方案 »

  1.   

    不好意思,说老实话我不太明白你说的意思,我的一般做法是,控制DataTable,把Dataview和DataTable联系起来,最后通过DataGrid和Dataview,修改DataTable其实相当于修改Dataview
      

  2.   

    //声明DataGridTableStyle DataGridTableStyle dgts = new DataGridTableStyle(); 
    dgts.MappingName = "LogView"; 
    //声明DataGridColumnStyle
    DataGridColumnStyle style1 = new DataGridTextBoxColumn( );
    style1.MappingName = "cat";
    style1.HeaderText = "cat";
    style1.Width = 200;//在此设置宽度
    DataGridColumnStyle style2 = new DataGridTextBoxColumn( );
    style2.MappingName = "message";
    style2.HeaderText = "message";
    style2.Width = 750;//在此设置宽度
    DataGridColumnStyle style3 = new DataGridTextBoxColumn( );
    style3.MappingName = "stamp";
    style3.HeaderText = "stamp";
    style3.Width = 100;//在此设置宽度
    //添加列格式和表格式
    dgts.GridColumnStyles.Add( style1 );
    dgts.GridColumnStyles.Add( style2 );
    dgts.GridColumnStyles.Add( style3 );
    LogList.TableStyles.Add( dgts );
      

  3.   

    可能没说清楚,不好意思。
    这么说吧:DataGrid.DataSource为DataView时,DataGrid.DataMember为空,就无法为DataGrid创建的TableStyles设置MappingName,因此该TableStyles就无法控制DataGrid上的显示效果。
              如果DataGrid.DataSource为DataSet或者DataTable,那么又无法过滤。能解决这样的问题吗?.net 1.1
      

  4.   

    你只要将TableStyle的MappingName指定为DataGrid的DataSource对应的DataTable的TableName就行了.不管你的DataSource是DataSet还是DataTable或是DataView.另外,你的无法过滤是什么意思?
    如果你绑定的是DataTable,则只要用DataTable.DefaultView就可以过滤,在DataGrid上显示效果
      

  5.   

    MyLf(不睡觉的鱼):好像DataSet过滤后在DataGrid上无法显示过滤后的效果是吗?
    即使是使用DataSet.table["TableName"].DefaultView = FilterSyntax