簡體   English   中英

將所有數據從一個網格視圖復制到另一個網格,但是將第一個網格中的數據打勾

[英]Copy all data from one gridview to another, but those from the first grid which are ticked

我在同一頁面上有兩個網格。 第一個網格包含數據並啟用了復選框。 單擊一個按鈕后,我只想將選中的數據復制到另一個網格。

我已經完成了–但是它僅將一個項目從第一個網格復制到第二個。 請幫忙。

我的代碼:

int RowNo = 0;        
foreach (GridViewRow row in GridView1.Rows)
{
    RowNo = RowNo + 1;
    bool Checkbox = ((CheckBox)row.FindControl("CheckBox1")).Checked;

    if (Checkbox = true)
    {
        SqlConnection myConn = new SqlConnection();
        myConn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\eRashshala.mdf;Integrated Security=True;User Instance=True";
        myConn.Open();

        GridViewRow Row = GridView1.Rows[RowNo - 1];
        String Name = Row.Cells[2].Text;                   
        SqlDataAdapter da = new SqlDataAdapter("Select LatinName,IngName,MaterialForm from IngredientInfo Where IngName='" + Name + "'", myConn);
        DataSet ds = new DataSet();
        da.Fill(ds, "IngredientInfo");
        GridView2.DataSource = ds.Tables[0];
        GridView2.DataBind();
    }
}

在我看來,您似乎只對網格中的一行執行復制,這將解釋為什么只復制一件事。 您首先開始:

bool Checkbox = ((CheckBox)row.FindControl("CheckBox1")).Checked;
if (Checkbox = true)
    {
        // Perform copy...
    }

但據我所知,第一行僅適用於當前的數據行。 大概以某種方式從網格獲取變量“行”。 您顯示的代碼是foreach循環的一部分嗎?

如果沒有,那么我想您需要做的就是循環Grid中的所有行,並為每一行而不只是一行進行插入。 您可以(可能應該)將寫入操作分組到一個數據庫事務中,而不是多次寫入,但這是性能優化,並且不會影響功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM