//获取数据源
        protected void Ok_Click(object sender, EventArgs e)
        {
                DataTable Da = (DataTable)ViewState["DataTable"];                foreach (ListItem li in CBLCommodityNamelist.Items)
                {
                    //获取未选中的行
                    if (!li.Selected)
                    {
                        foreach (DataRow Dr in Da.Rows)
                        {
                            if (Dr["CommodityCode"].ToString() == li.Value)
                            {
                                //删除未选中的行
                                Dr.Delete();
                            }
                        }
                        //修改集合
                        Da.AcceptChanges();
                    }
                }
         }
数据源 (DataTable)ViewState["DataTable"] 有三行记录
点击按扭 Da 获取三行记录删除二行(还剩一行) 
在次点击按扭 Da 获取数据却只能获取到一行
数据源 (DataTable)ViewState["DataTable"] 并没有改变 Da 为什么获取不到三行记录了?

解决方案 »

  1.   

    ...
    点击按扭 Da 获取三行记录删除二行(还剩一行)  
    在(再)次点击按扭 Da 获取数据却只能获取到一行
    ...难道不对吗?
      

  2.   

    你不是删除二行了么,肯定只有一行了啊.你是用table中的数据和List对比同时都有的就删除是吧.
      

  3.   

    你调试,第二次点击按钮的时候看你的ListItem有几条记录就知道为什么了.
      

  4.   

    DataTable Da = (DataTable)ViewState["DataTable"];Da重新获取了数据应该是三行数据 难道不是这样的?
      

  5.   

    List没有删除那就肯定一直都只显示一条数据咯.因为你每次都进去做一下比较,二条都存在的数据一直都被删除了.
      

  6.   

    没有人知道吗?为什么我删除Da里面行的时候(DataTable)ViewState["DataTable"]的行也会被删除?
      

  7.   

    数据绑定一起,可clear下,然后重新加载数据