Skip to main content
 首页 » 编程设计

c#之无法将类型为 'System.Web.UI.WebControls.ListItem' 的对象转换为类型 'System.IConvertible'

2024年01月13日28Terrylee

我正面临这个问题,但无法解决。这来自 List。遇到问题 AddOnTriggerItems = gvTriggerProduct.Rows.Cast<GridViewRow>().Select(rowItem => new AddOnTriggerItem()

ProjectA.TEST.BE.AddOn addOn = new ProjectA.TEST.BE.AddOn() 
{     
    AddCode = addCode,           
    CreatedTime = DateTime.Now, 
    ModifiedTime = DateTime.Now, 
    AddOnTriggers = gvTriggerProduct.Rows.Cast<GridViewRow>().Select(row => new AddOnTrigger() 
    { 
        AddOnTriggerItems = gvTriggerProduct.Rows.Cast<GridViewRow>().Select(rowItem => new AddOnTriggerItem() 
        { 
            ProductTypeID = gvTriggerProduct.Rows[rowItem.RowIndex].Cells[1].Text.ToString(), 
            ProductCode = gvTriggerProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),      
            CreatedTime = DateTime.Now, 
            ModifiedTime = DateTime.Now 
        }).ToList(), 
        ActiveStatus = 1, 
        CreatedTime = DateTime.Now, 
        ModifiedTime = DateTime.Now 
    }).ToList(), 
    AddOnProducts = gvAddOnProduct.Rows.Cast<GridViewRow>().Select(rowAddOnProducts => new AddOnProduct() 
    { 
        ProductTypeID = gvAddOnProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),  
        ProductCode = gvAddOnProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),    
        CreatedTime = DateTime.Now, 
        ModifiedTime = DateTime.Now, 
        AddOnProductAllotments = addOnProductAllotmentSession.Where(p => (p.ProductID == (Convert.ToString(((HiddenField)rowAddOnProducts.FindControl("ProductID")).Value)))).ToList(),       
    }).ToList() 
}; 

请您参考如下方法:

感谢 grek 和 derloopkat。 Grek 的提示:问题可能出在错误行开始的语句中的任何地方

我更改了 3 个部分。

  1. 我不能有 2 个 gvTriggerProduct。

  2. 我现有代码中的一部分(不在此处)。缺少“.Value”。 Grek 的提示 Convert.ToByte(((DropDownList)rowItem.FindControl("ddlMinTriggerQuantity")).SelectedItem

  3. Error: Cannot implicitly convert type 'void' to 'System.Collections.Generic.List'

     List<AddOnTrigger> triggerlist = new List<AddOnTrigger>(); 
    triggerList.Add(new AddOnTrigger 
    { 
     AddOnTriggerItems = gvTriggerProduct.Rows.Cast<GridViewRow>().Select(rowItem => new AddOnTriggerItem() 
    { 
        ProductTypeID = gvTriggerProduct.Rows[rowItem.RowIndex].Cells[1].Text.ToString(), 
        ProductCode = gvTriggerProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),      
        CreatedTime = DateTime.Now, 
        ModifiedTime = DateTime.Now 
    }).ToList(), 
    ActiveStatus = 1, 
    CreatedTime = DateTime.Now, 
    ModifiedTime = DateTime.Now} 
    }); 
     
    ProjectA.TEST.BE.AddOn addOn = new ProjectA.TEST.BE.AddOn() 
    {  
       AddCode = addCode,           
       CreatedTime = DateTime.Now, 
       ModifiedTime = DateTime.Now, 
       AddOnTriggers = triggerlist 
       AddOnProducts = gvAddOnProduct.Rows.Cast<GridViewRow>().Select(rowAddOnProducts => new AddOnProduct() 
       { 
          ProductTypeID =    gvAddOnProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),     
          ProductCode = gvAddOnProduct.Rows[rowItem.RowIndex].Cells[2].Text.ToString(),  
          CreatedTime = DateTime.Now, 
          ModifiedTime = DateTime.Now, 
          AddOnProductAllotments = addOnProductAllotmentSession.Where(p => (p.ProductID == (Convert.ToString(((HiddenField)rowAddOnProducts.FindControl("ProductID")).Value )))).ToList(),       
    }).ToList() 
     
    };