2017-01-09 98 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 
} 
相关问题