Instance not set to an object
Jeg har følgende kode:******************************
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="VariantVisning.ascx.cs"
Inherits="Controls_VariantVisning" %>
<%@ Register Assembly="EShopBasis.FrontendLib" Namespace="EShopBasis.FrontendLib.ExtControls"
TagPrefix="ext" %>
<asp:DataGrid ID="variant_table" AutoGenerateColumns="false" runat="server" BorderWidth="0" ShowHeader="false">
<Columns>
<asp:HyperLinkColumn DataTextField="link_tekst" DataNavigateUrlFormatString="{0}"
DataTextFormatString="link_tekst" DataNavigateUrlField="link_url" />
<asp:BoundColumn DataField="isbn" />
<asp:BoundColumn DataField="pris" />
<asp:TemplateColumn>
<ItemTemplate>
<div>
<asp:ImageButton ID="buybtn" CommandArgument="<% %>" runat="server" OnCommand="Buy" BorderWidth="0" ImageUrl="~/Images/btn_buy.gif" />
</div>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
<asp:Label ID="kobt" runat="server" Text=""></asp:Label>
***************************
Codebehinde fil:
*********************************
using System;
using System.Data;
using System.Web.UI.WebControls;
using Microsoft.CommerceServer.Catalog;
public partial class Controls_VariantVisning : System.Web.UI.UserControl {
private Product _product;
private CatalogRelationshipsDataSet relateredeProdukter;
protected DataTable _dataTable;
public Product Product {
get { return _product; }
set { _product = value; }
}
private int AntalVarianterProdukter() {
return relateredeProdukter.CatalogRelationships.Count;
}
private void HentVarianterProdukter() {
//Henter alle relaterede produkter til dette produkt
relateredeProdukter = _product.RelatedProducts;
}
private void OpsaetTabel() {
_dataTable = new DataTable();
_dataTable.Columns.Add(new DataColumn("link_url", typeof(String)));
_dataTable.Columns.Add(new DataColumn("link_tekst", typeof(String)));
_dataTable.Columns.Add(new DataColumn("isbn", typeof(String)));
_dataTable.Columns.Add(new DataColumn("pris", typeof(String)));
_dataTable.Columns.Add(new DataColumn("knap_tekst", typeof(String)));
_dataTable.Columns.Add(new DataColumn("produkt_id", typeof(String)));
}
private void UdfyldTabel() {
//Husk at vise aktuelt produkt øverst
for (int counter = 0; counter < AntalVarianterProdukter(); counter++) {
DataRow dr;
dr = _dataTable.NewRow();
dr[0] = "nyside.aspx";
dr[1] = Convert.ToString(counter);
dr[2] = Convert.ToString(counter);
dr[3] = Convert.ToString(counter);
dr[4] = Convert.ToString(counter);
dr["produkt_id"] = Convert.ToString(counter);
_dataTable.Rows.Add(dr);
}
}
private void VisTable() {
DataView dv = new DataView(_dataTable);
variant_table.DataSource = dv;
variant_table.DataBind();
}
void Page_Load(Object sender, EventArgs e) {
if (!IsPostBack) {
HentVarianterProdukter();
OpsaetTabel();
UdfyldTabel();
VisTable();
}
}
protected void Buy(object sender, CommandEventArgs e) {
kobt.Text = "Følgende element blev valgt: " + e.CommandArgument;
}
}
********************************************
Hvorfor referer "e.CommandArgument" ikke til noget valgt produkt?
