Как заменить строго типизированный столбец идентификатора столбцом описания в gridview с objectdatasource - PullRequest
0 голосов
/ 26 января 2012

Я заполнил gridView из класса SaleDAL, предполагая, что следующий код является кодом. Пожалуйста, игнорируйте любую синтаксическую ошибку



    public class Product
    {
      public int ProductID
      { }
      public string ProductName
      { }
    }

    public class Sale
    {
      public int SaleID
      { }
      public int ProductID
      { }
      public int Amount
      { }
    }
    // Data Access Layers
    public class ProductsDAL
    {
       public IList<Product> GetProducts()
       { }
    }
    public class SaleDAL
    {
      public IList<Sale> GetSales()
      { }
      public void AddSale()
      {}
    }
    // populate gridview, 
    // ObjectDataSource1 is configured with SaleDAL
    GridView1.DataSourceID = "ObjectDataSource1";

2-й столбец - ProductID, я хочу заменить его на ProductName, что является самым простым способом,я не хочу писать другой класс, пожалуйста, обратите внимание, что позднее для него также будет выполнено действие редактирования.

Ответы [ 2 ]

0 голосов
/ 20 февраля 2012

наконец я нашел решение,

     List<Sale> sales = new List<Sale>();
     Sale sale = new Sale();
     List<Product> products = new List<Product>();
     products = (List<Product>) ProductDAL.GetProducts();

     //r is SqlDataReader.

     _sale.SaleID = Convert.ToInt32(r["SaleID"]);
     _sale.ProductID = Convert.ToInt32(r["ProductID"]);
     _sale.ProductInRelation = products.Find(
                                                 delegate(Product p){
                                                 return p.PoroductID == _sale.ProductID;
                                             });
     _sales.Add(_sale);

     //now in gridview you can write 

     <%# Eval("ProductInRelation.ProductName") %>
0 голосов
/ 26 января 2012

Если ваш список содержит ProductName, вам необходимо настроить GridView (отключить автоматически созданные столбцы).Добавьте новое поле поля поля / шаблона и присвойте свойству поля данных значение ProductName.

...