0

asp と c# を使用してリストからグリッドビューを設定しようとしている DataBind コマンドでこのエラーが発生しています。シナリオは、リピーターがサイドバーにカテゴリ リンクを設定し、選択に基づいてメイン div にグリッドビューを設定します。データセットをデータソースとして使用した場合は正常に機能しましたが、このシナリオではジェネリックを使用しており、エラーの原因がわかりません。リストにデータが入力されるだけで、データバインドできません

public partial class Products : System.Web.UI.Page
{
    string ItemNumber;
    string ItemDescription;
    string  PrePrice;
    string Size;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            PopCategories();

        }
    }  
private List<Products> GetCategoryDetails(string HiddenField1)
    {
        DataTable table = new DataTable();
        table = new BizLayer().grabdata(HiddenField1);

        List<Products> list = new List<Products>();
        foreach (DataRow dr in table.Rows)
        {
            Products products = new Products();
            products.ItemNumber = dr["Item #"].ToString();
            products.ItemDescription = dr["Item Description"].ToString();
            products.PrePrice = dr["Pre Price"].ToString();
            products.Size = dr["Size"].ToString();
            list.Add(products);
        }
        return list;
    }
 private void PopDetails()
    {
        DetailsGridView.DataSource = GetCategoryDetails(HiddenField1.Value);

ここでエラー DetailsGridView.DataBind();

    }  

  protected void Repeater_ItemCommand(object source, RepeaterCommandEventArgs e)
    {       
        //Get Command Arguement from repeater OnItemCommand
        if (e.CommandName == "cmd")
        {
            HiddenField1.Value = (e.CommandArgument).ToString();             

             GetCategoryDetails(HiddenField1.Value);
             PopDetails();
        }            
    }

    protected void DetailsGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {

            DetailsGridView.PageIndex = e.NewPageIndex;
            //  DataSource  
            DetailsGridView.DataSource = GetCategoryDetails(HiddenField1.Value);

            DetailsGridView.DataBind();            
    }

 <asp:GridView ID="DetailsGridView" AllowPaging="true" PageSize="3" CssClass="dataGrid" 
  RowStyle-  CssClass="chartItemStyle" AlternatingRowStyle-CssClass="chartAlternatingItemStyle" 
  HeaderStyle-  CssClass="chartHeaderStyle" runat="server"   OnPageIndexChanging="DetailsGridView_PageIndexChanging">   </asp:GridView>
4

1 に答える 1

0
public partial class Products : System.Web.UI.Page
{
   public class Products2
   {
       public string ItemNumber { get; set; }
       public string ItemDescription { get; set; }
       public string PrePrice { get; set; }
       public string Size { get; set; }
   }
//....

それで:

List<Products2> list = new List<Products2>();
foreach (DataRow dr in table.Rows)
{
     Products2 products = new Products2();
     products.ItemNumber = dr["Item #"].ToString();
     products.ItemDescription = dr["Item Description"].ToString();
     products.PrePrice = dr["Pre Price"].ToString();
     products.Size = dr["Size"].ToString();
     list.Add(products);
}
于 2013-08-13T20:51:07.760 に答える