我遇到了一個小問題,我找不到解決方案。asp.Net Gridview顯示數據類型而不是值
當gridview綁定時,所有價格將顯示爲Microsoft.Xrm.Sdk.Money
而不是其值。
有誰知道爲什麼會發生這種情況,以及如何改變它?
這裏是我的GridView:
<asp:GridView ID="ProductList"
runat="server"
AutoGenerateColumns="false"
OnRowDataBound="ProductList_OnRowDataBound">
<Columns>
<asp:BoundField
HeaderText="Productno."
DataField="ProductNumber"/>
<asp:BoundField
HeaderText="Product"
DataField="Name" />
<asp:BoundField
HeaderText="Price/Unit"
DataField="Price" />
</Columns>
</asp:GridView>
,我與德下面的代碼
Products = (from ppl in priceCatalog.price_level_product_price_levels
join prod in ServiceContext.ProductSet.ToList()
on ppl.ProductId.Id equals prod.ProductId
select new Product()
{
ProductId = prod.ProductId,
ProductNumber = prod.ProductNumber,
Name = prod.Name,
Price = prod.Price,
//Price = ppl.Amount.Value,
PriceLevelId = ppl.PriceLevelId,
SubjectId = prod.SubjectId,
DefaultUoMId = ppl.UoMId
}).ToList();
var product = Products.Where(p => p.SubjectId.Id == filterTo).ToList();
ProductList.DataKeyNames = new[] { "ProductId" };
ProductList.DataSource = product.ToDataTable(XrmContext);
ProductList.DataBind();
填充它目前,它看起來像這樣:
PNo. Name Price
1 Prod 1 Microsoft.Xrm.Sdk.Money
2 Prod 2 Microsoft.Xrm.Sdk.Money
3 Prod 3 Microsoft.Xrm.Sdk.Money
....
在xrm.cs (用於早期與CRM結合的生成文件)
其以下:
[Microsoft.Xrm.Sdk.AttributeLogicalNameAttribute("price")]
public System.Nullable<decimal> Price
{
get
{
return this.GetAttributeValue<System.Nullable<decimal>>("price");
}
set
{
this.SetAttributeValue<Microsoft.Xrm.Sdk.Money>("Price", "price", value);
}
}
noew即時得到'數據綁定:「System.String」不包含名爲「Value'.'貌似在assining屬性 – domiSchenk 2013-05-06 14:14:46
如果'Price'是問題的性質「Microsoft.Xrm.Sdk.Money」對象的「Value」屬性將正確綁定。嘗試以這種方式綁定價格'綁定(「價格」)'並檢查輸出 – 2013-05-06 14:26:05
這是一個貨幣類型,請參閱我的編輯。我會得到Type而不是它的值:-( – domiSchenk 2013-05-06 14:31:47