筛选在Grid绑定的数据源进行。
DataTable dt;
dt.Select("条件");

解决方案 »

  1.   

    我给你提个思路,我没有具体试验,不知道是否可行。
    在DataList的每一行中用FindControl,查找DataGrid,将正确的数据分别和DataGrid分别邦定。
      

  2.   

    其实 我在Datalist中的每一行中都用label绑定一个类型ID字段,我想怎样能够动态获得这每行的label值,从而获得datagrid的动态绑定条件
    关键是现在根本找不到label的值,很郁闷,不知道思路对不对!
      

  3.   

    用:((Label)DataList1.FindControl(label1)).Text;
    在DataList1控件中查找label1控件,找到后,转换为Label控件,最后提取Text属性值即可。
      

  4.   

    cs code
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace WebApplication1
    {
    /// <summary>
    /// Summary description for WebForm17.
    /// </summary>
    public class WebForm17 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataList DataList1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // Put user code to initialize the page here
    this.DataList1.DataSource = this.bind().DefaultView;
    this.DataList1.DataBind();
    } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: This call is required by the ASP.NET Web Form Designer.
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private DataTable bind()
    {
    DataTable dt = new DataTable();
    dt.Columns.Add("Item",typeof(string));
    dt.Columns.Add("Type",typeof(int));
    DataRow dr; //= new DataRow();
    for(int i = 1;i< 5;i++)
    {
    dr = dt.NewRow();
    dr[0] = "Item" + i.ToString();
    if(i%2 == 0)
    dr[1] = 2;
    else
    dr[1] = 1;

    dt.Rows.Add(dr);
    } return dt;
    } public DataTable getGridData(string type)
    {

    DataTable dt = this.bind();
    DataTable odt = new DataTable();
    odt.Columns.Add("Type",typeof(int));
    DataRow odr;
    foreach(DataRow dr in dt.Rows)
    {
    if(dr["type"].ToString() == type)
    {
    odr = odt.NewRow();
    odr[0] = Convert.ToInt32(type);

    odt.Rows.Add(odr);
    }

    }
    return odt; }
    }
    }。aspx code
    <%@ Page language="c#" Codebehind="WebForm17.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm17" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm17</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name=vs_defaultClientScript content="JavaScript">
    <meta name=vs_targetSchema content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server">
    <asp:DataList id="DataList1" runat="server">
    <ItemTemplate>
    <asp:Label id="Label1" runat="server" ><%#(DataBinder.Eval(Container.DataItem,"item")).ToString()%></asp:Label>

    <asp:DataGrid id="DataGrid1" runat="server" DataSource='<%#getGridData((DataBinder.Eval(Container.DataItem,"Type")).ToString())%>'></asp:DataGrid>

    </ItemTemplate>
    </asp:DataList> </form> </body>
    </HTML>
      

  5.   

    以上代码实现了你的分组,其中的dt可以是重数据库中查出的dataset