Standardfråga #1:
Vad menar du med att det "inte fungerar"?
Kolla ifall referensen är null istället för att utnyttja felhantering för det:
if (e.CommandArgument != null) {
...
} else {
...
}
4 svar · 312 visningar · startad av paraxe
Hej
I en repeater så binder jag ett produkt id till antingen en "buttons"- CommandArgument eller till en DropdownList beroende på om det finns flera artikelnummer på produkten eller inte.
Vid klick, där jag ska lägga allt i en kundkorg så ska jag kolla om det finns ett id i CommandArgument eller i en DropDownList.SelectedValue.
Alltså vid bindning:
ArrayList aList = lo.getArtnr(((TblProduct)e.Item.DataItem).PkId);
if(aList.Count == 1)
{
btnOrder.CommandArgument = ((TblArtNr)aList[0]).PkIdArtnr.ToString();
art.InnerText = "bla..";
price.InnerText = "bla..";
}
else
{
DropDownList ddlArt = new DropDownList();
ddlArt.DataSource = aList;
ddlArt.DataTextField = "ddlText";
ddlArt.DataValueField = "PkIdArtnr";
ddlArt.DataBind();
art.Controls.Add(ddlArt);
price.Visible = false;
pricedt.Visible = false;
}
Och vill lägga i korgen:
int Productid;
try
{
Productid = Convert.ToInt32(e.CommandArgument);
}
catch(NullReferenceException)
{
Productid = Convert.ToInt32(((DropDownList)e.Item.FindControl("ddlArt")).SelectedValue);
}
Änte så man ska ska göra???
Det fungerar inte iaf.
Mvh
Pär
Standardfråga #1:
Vad menar du med att det "inte fungerar"?
Kolla ifall referensen är null istället för att utnyttja felhantering för det:
if (e.CommandArgument != null) {
...
} else {
...
}
Oops, dåligt formulerad fråga, håller med om det.
Jo jag kan gå över till en if-sats istället (hade det innan).
Så till det verkliga problemet:
Hur gör jag för att hitta WebControls.DropDownList ddlArt och hämta det valda värdet?
/pär
Har hittat felet.
Det berodde på att jag skapade DropDownList-controlen i repeatern för varje produkt. Lösningen blev att skapa controlen i .aspx-sidan. Först då kunde jag hitta controlen efter en PostBack. Den kan heller inte vara visible=false , så därför läggs, om det är en singel-artikel, id:et i CommandArgument.
/pär