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>