比较asp.net中的2个GridView

时间:2011-10-10 02:45:02

标签: asp.net gridview

如何比较2 GridViews中的信息,当我点击按钮比较时,不同的信息会出现在另一个datagridview中?

例如信息。在第一个datagridview中是12345 第二个datagridview是1234567 然后,当我点击比较按钮时, 67将出现在另一个datagridview中。

提前致谢!

1 个答案:

答案 0 :(得分:1)

你可以做这样的事情

  1. 在后面的代码中将数据源分配给gridviews

    protected void Page_Load(object sender,EventArgs e) {     if(!Page.IsPostBack)     {         列表lists1 = new List();

        lists1.Add(1);
        lists1.Add(12345);
        lists1.Add(234354);
        lists1.Add(3421);
        lists1.Add(2343);
    
        g1.DataSource = lists1;
        g1.DataBind();
    
        List<int> lists2 = new List<int>();
    
        lists2.Add(1);
        lists2.Add(1234567);
        lists2.Add(234354);
        lists2.Add(334421);
        lists2.Add(2343343);
    
        g2.DataSource = lists2;
        g2.DataBind();
    }
    

    }

  2. 在比较按钮上,单击进行比较。

    protected void btn_Click(object sender,EventArgs e) {     列出newLists = new List();

    //iterate first gridview
    foreach (GridViewRow row1 in g1.Rows)
    {
        if (row1.RowType == DataControlRowType.DataRow)
        {
            string gv1Value = row1.Cells[0].Text;
    
            //iterate second gridview
            foreach (GridViewRow row2 in g2.Rows)
            {
                if (row2.RowType == DataControlRowType.DataRow)
                {
                    string gv2Value = row2.Cells[0].Text;
    
                    //do comparison here
                    if (gv1Value.Contains(gv2Value))
                    {
                        //if your criteria are met, put the data in the new lists
                        newLists.Add(Convert.ToInt32(gv1Value));
                    }
                }
            }
        }
    }
    
    if (newLists.Count > 0)
    {
        g3.DataSource = newLists;
        g3.DataBind();
    }
    

    }

  3. 希望这有帮助