2017-01-09 96 views
0

如何在插入gridview之前檢查我的插入代碼是否在按鈕點擊之下。在插入gridview之前查找重複

if (Session["dtInSession"] != null) 
    dt1 = (DataTable)Session["dtInSession"]; 
    DataRow dr = dt1.NewRow(); 
    dr["AccessoryName"] = drpAccessories.SelectedItem; 
    dr["ConditionName"] = drpConditions.SelectedItem; 
    dt1.Rows.Add(dr); 
    Session["dtInSession"] = dt1; 
    ViewState["CurrentTable"] = dt1; 
    grvList.DataSource = dt1; 
    grvList.DataBind(); 

我試過這種方式,但肯定它只會檢查最後選擇的項目,而不是其他已插入的行。

if (grvList.Rows.Count > 0) 
{ 
    foreach (GridViewRow gr in grvList.Rows) 
    { 
    accessorucheck = ((Label)gr.FindControl("txtAccessories")).Text; 
    if (accessorucheck == drpAccessories.Text) 
    { 
     ClientScript.RegisterStartupScript(Page.GetType(), "validation1", "<script language='javascript'>alert('Accessory Alredy Added, Please change the condition if needed.')</script>"); 
    } 
    else 
    { 
     if (Session["dtInSession"] != null) 
     dt1 = (DataTable)Session["dtInSession"]; 
     DataRow dr = dt1.NewRow(); 
     dr["AccessoryName"] = drpAccessories.SelectedItem; 
     dr["ConditionName"] = drpConditions.SelectedItem; 
     dt1.Rows.Add(dr); 
     Session["dtInSession"] = dt1; 
     grvList.DataSource = dt1; 
     grvList.DataBind(); 
    } 
    } 
} 

回答

0

您可以使用DataView.ToTable MSDN DataView.ToTable

if (Session["dtInSession"] != null) 
     dt1 = (DataTable)Session["dtInSession"]; 

    DataRow dr = dt1.NewRow(); 
    dr["AccessoryName"] = drpAccessories.SelectedItem; 
    dr["ConditionName"] = drpConditions.SelectedItem; 
    dt1.Rows.Add(dr); 
    Session["dtInSession"] = dt1; 
    ViewState["CurrentTable"] = dt1; 
// 
DataView view = new DataView(dt1); 
DataTable distinctValues = view.ToTable(true, "AccessoryName", "ConditionName"); 
grvList.DataSource = distinctValues; 
grvList.DataBind(); 
+0

它只會幫助您顯示不同,而不會在插入時顯示任何錯誤消息。 –

+0

謝謝ihtsham。它現在與你的代碼一起工作。非常感謝您的幫助。 – NAJEEB

1

你可以按照ihtsham已經在上面,但是你仍然可以與記錄結束提到被插入,然後再加入省略不必要的開銷的方式。

我寧願從會話變量中獲取數據表後使用select命令來檢查是否存在這樣的行。你可以使用類似的東西,不要認爲語法將是完美的,因爲我的ASP.Net是生鏽的,但它應該讓你在正確的軌道上。

if (dt2.Select("AccessoryName = 'Var' AND ConditionName = 'Var2'").Rows.Count == 0) 
{ 
    //Insert code here 
} 
else 
{ 
    //Code to execute when duplicate added 
} 
相關問題