2011-10-10 71 views
0

如何比較2 GridViews中的信息,當我點擊按鈕比較時,不同的信息會出現在另一個datagridview中?比較asp.net中的2個GridViews

例如信息。在第一個datagridview是12345 第二個datagridview是1234567 然後,當我點擊比較按鈕時, 67會出現在另一個datagridview中。

在此先感謝!

+0

你能告訴你2個GridView的標記?你到底嘗試了哪些代碼來比較它們? – jadarnel27

回答

1

你可以做這樣的事情

  1. 在後面的代碼分配的數據源GridView的

    保護無效的Page_Load(對象發件人,EventArgs的){ 如果 (!Page.IsPostBack) { List 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) List 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(); 
    } 
    

    }

希望這有助於

+0

這段代碼的結果不是我想要的,反之亦然。我想要的結果是在兩張表中找到他們的差異不是相同的數字。並感謝您的代碼:) –

+0

如果我將放入gridview 1&2的數據來自sqldatasource,該怎麼辦?我將更改哪些代碼?非常感謝你 –