2016-08-26 4 views
2

私はこれに直面していますが、解決できません。これはリストにあります。 grekとderloopkatに AddOnTriggerItems = gvTriggerProduct.Rows.Cast<GridViewRow>().Select(rowItem => new AddOnTriggerItem()タイプ 'System.Web.UI.WebControls.ListItem'のオブジェクトを 'System.IConvertible'にキャストできません

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() 
}; 
+0

は、整数または文字列をProductTypeIDされる?があります同様のエラーがここに投稿されましたhttp://stackoverflow.com/questions/10407348/unable-to-cast-object-of-type-system-web-ui-webcontrols-label-to-type-system – derloopkat

+0

投げられたエラーはではありませんAddOnTriggerItems = gvTriggerProduct.Rows.Cast ().Select(rowItem => new AddOnTriggerItem()AddOnTriggerは、親であり、AddOnTriggerItemsは子です。それは1対多の関係です。確かに私はこのように正しく書くことはできません。 –

+0

次にAddOnTriggerItemクラスのProductTypeIDをチェックします。 – derloopkat

答えて

-1

Thxをで問題が発生しました。 Grekのヒント:エラー行で始まる文のどこにでも問題があります。

私が変更した3つの部分があります。

  1. 私は2つのgvTriggerProductを持つことはできません。

  2. 既存のコードの一部(ここには含まれません)。 "値"がありません。 GrekのヒントConvert.ToByte(((DropDownListコントロール)rowItem.FindControl( "ddlMinTriggerQuantity"))。のSelectedItem

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

    クラスAddOnProductで
    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() 
    
    }; 
    
+0

これは答えになっていますか?それはあまり明確ではなく、** IF **の問題はあなたの質問の一部ではないコードに関連していました。答えが他の人を助けないので、質問を削除してください。 – grek40

関連する問題