Avatar billede krukken Mester
22. oktober 2007 - 09:29 Der er 11 kommentarer og
2 løsninger

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?
Avatar billede Syska Mester
22. oktober 2007 - 10:18 #1
CommandArgument="<% %>"

Du har jo ikke sat dit commandargument til nogen værdi ...

Hvad regner du da med at der skulle ligge i den ?

// ouT
Avatar billede krukken Mester
22. oktober 2007 - 10:20 #2
Hvad som helst:) Bare jeg får mulighed for at trække den ud - så hvis du giver mig et eksempel på hvordan jeg sætter den, og hvordan jeg trækker den pågældende værdi ud igen, så skulle det være på plads.
Avatar billede nielle Nybegynder
22. oktober 2007 - 10:20 #3
<asp:ImageButton ID="buybtn" CommandArgument="abcd" runat="server" OnCommand="Buy" BorderWidth="0" ImageUrl="~/Images/btn_buy.gif" />
Avatar billede krukken Mester
22. oktober 2007 - 10:29 #4
Jeg vil gerne have den sat via CommandArgument="<% %>"
Avatar billede Syska Mester
22. oktober 2007 - 10:41 #5
CommandArgument="abcd"

Men giver det mening ... hvad er det du vil have til at stå der ? Det bliver jo samme ord hver gang ...

CommandArgument='<%# Eval("link_tekst") %>' ville give hvad der nu står i link_tekst ...

// ouT
Avatar billede nielle Nybegynder
22. oktober 2007 - 10:43 #6
"abcd" var vist bare mit eksempel på hvad der ville ske hvis man skrev noget i CommandArgument="..." :^)
Avatar billede krukken Mester
22. oktober 2007 - 10:49 #7
Hvad gør: Eval("link_tekst")

Jeg  ville jo bare gerne kunne sætte den i forbindelse med koden:
            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);
Avatar billede softspot Forsker
22. oktober 2007 - 11:38 #8
Det kan du vel ikke, da UdfyldTabel kun bliver kaldt første gang siden indlæses og et CommandArgument får du først mulighed for at aflæse i forbindelse med at du trykker på en knap (eller hvad det nu er den er koblet på). Så du skal kalde UdfyldTabel med en parameter fra funktionen Buy for at det kommer til at fungere (efter min bedste overbevisning) :-)
Avatar billede krukken Mester
21. december 2007 - 15:57 #9
Ligger I et svar, så deler i pointene....
Avatar billede softspot Forsker
21. december 2007 - 19:10 #10
Ingen point til mig, ellers tak :)
Avatar billede Syska Mester
21. december 2007 - 20:26 #11
lidt point måske ... men er du kommet til en løsning ?
Avatar billede nielle Nybegynder
22. december 2007 - 08:39 #12
Ja, hvad endte den egentlig med?
Avatar billede nielle Nybegynder
07. januar 2008 - 17:54 #13
Hvad med lidt respons?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester