using AllBase; using AllBase.Model.Result; using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.BaseForms; using TemuKJD.Extension; using TemuKJD.ToolForms; namespace TemuKJD.WXForms.ProductForms { public partial class WXDBProdUploadCacheForm : BaseGeneralForm { NaiBa.Util.ConcurrentList lstTemuDBProductSelect; public WXDBProdUploadCacheForm(NaiBa.Util.ConcurrentList _lstTemuDBProductSelect) { InitializeComponent(); lstTemuDBProductSelect = _lstTemuDBProductSelect; } private void WXDBProdUploadCacheForm_Load(object sender, EventArgs e) { dgvSelectProduct.AddSelectorColumn("colCheck"); dgvSelectProduct.AddImgColumn("colProductSkcPic", "colImgUrl"); if (lstTemuDBProductSelect != null && lstTemuDBProductSelect.Count > 0) { foreach (var prodSelect in lstTemuDBProductSelect) { int rowIndex = this.dgvSelectProduct.Rows.Add( false, prodSelect.id, prodSelect.spu_id, prodSelect.main_img, null, prodSelect.product_name, // 商品名称 prodSelect.cat_name, prodSelect.ext_code, prodSelect.notes, "删除" ); dgvSelectProduct.Rows[rowIndex].Height = 60; } } } private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex < 0 || e.RowIndex < 0) return; string headerText = dgvSelectProduct.Columns[e.ColumnIndex].HeaderText; var id = dgvSelectProduct.Rows[e.RowIndex].Cells["colId"].Value.ParseToString(); var dbProduct = lstTemuDBProductSelect.FirstOrDefault(p => p.id.ToString() == id); var row = dgvSelectProduct.Rows[e.RowIndex]; switch (headerText) { case "删除": if (BaseMsgForm.ShowConfirm("确定删除商品吗?删除后不可恢复!").DialogResult == DialogResult.Cancel) return; lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt()); this.dgvSelectProduct.Rows.Remove(row); break; case "图片": ShowImgForm imgFrom = new ShowImgForm(dgvSelectProduct.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString()); imgFrom.ShowDialog(); break; case "": dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvSelectProduct.Rows[e.RowIndex].Cells["colCheck"].Value; break; default: break; } } private void btnClearDgv_Click(object sender, EventArgs e) { var rows = this.dgvSelectProduct.Rows.Cast().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。 foreach (var row in rows) { if (row.Cells["colCheck"].Value.ParseToBool() == true) { lstTemuDBProductSelect.RemoveAll(s => s.id == row.Cells["colId"].Value.ParseToInt()); this.dgvSelectProduct.Rows.Remove(row); } } } } }