Frågan#1
Har en datalist i en updatepanel på följande sätt:
<asp:UpdatePanel ID="upBasket" runat="server">
<ContentTemplate>
<div id="webshop-basket" style="background:#3d0b3f; color:#fff; padding:8px 28px; border-top:#300932 1px solid; border-bottom:#300932 1px solid; margin-top:15px; cursor:pointer">
<p style="float:left; font-size:14px"><a id="webshop-basket-trigger" href="javascript:void(0);" style="color:#fff;">Visa min varukorg</a></p>
<asp:PlaceHolder ID="phCheckoutLink" runat="server" Visible="false">
<p style="float:right; font-size:14px"><a href="/checkout.aspx" style="color:#fff;">Till kassan »</a></p>
</asp:PlaceHolder>
<div class="clear"></div>
</div>
<div id="webshop-basket-content" style="background:#542157; color:#fff; padding:8px 28px;border-left:#300932 1px solid; border-right:#300932 1px solid; border-bottom:#300932 1px solid;">
<div> </div>
<asp:PlaceHolder ID="phEmptyBasket" runat="server" Visible="false">
<p style="text-align:center">Din varukorg innehåller inga produkter!</p>
</asp:PlaceHolder>
<asp:PlaceHolder ID="phBasket" runat="server" Visible="false">
<table cellpadding="0" cellspacing="0" class="mainCart" style="width:100%; text-align:left; border:#ffd71e 1px solid">
<thead style="background-color:#ffef1e; line-height:26px; color:#333; font-size:13px;">
<tr>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid"></th>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid">Produktnamn</th>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid">Antal</th>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid">Pris</th>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid"></th>
<th style="padding:3px 5px; border-bottom:#ffd71e 1px solid"></th>
</tr>
</thead>
<tbody style="color:#333">
<asp:DataList ID="dlCurrentBasket" runat="server" onitemdatabound="dlCurrentBasket_ItemDataBound" DataKeyField="basketLineId" OnDeleteCommand="Delete_Command" OnUpdateCommand="Update_Command" RepeatLayout="Flow" RepeatDirection="Horizontal" RepeatColumns="6">
<ItemTemplate>
<tr style="background-color:#fff898">
<td style="padding:3px 5px; width:60px;"><a href="/produkt/<%# Eval("productId") %>/<%# Eval("productName").ToString().ToLower().Replace(" ", "-").Replace("(", "").Replace(")", "").Replace("å", "a").Replace("ä", "a").Replace("ö", "o")%>.aspx" style="color:#3D0B3F"><img src="http://webadmin.blissdance.se/webfiles/funkykidz/product-images/<%# Eval("productImageName") %>" width="60" height="60" /></a></td>
<td style="padding:3px 5px; width:370px;"><strong><a href="/produkt/<%# Eval("productId") %>/<%# Eval("productName").ToString().ToLower().Replace(" ", "-").Replace("(", "").Replace(")", "").Replace("å", "a").Replace("ä", "a").Replace("ö", "o")%>.aspx" style="color:#3D0B3F"><%# Eval("productName") %><asp:Literal ID="lrlSize" runat="server" Text='<%# " - " + Eval("basketProductSize") %>' Visible='<%# Eval("basketProductSize") != "" %>' /></a></strong></td>
<td style="padding:3px 5px; width:50px;"><asp:TextBox ID="txtNb" runat="server" Width="25px" Text='<%# Eval("basketProductQuantity") %>' /></td>
<td style="padding:3px 5px; width:60px;"><%# Eval("productTotal")%> kr</td>
<td style="padding:3px 5px;"><asp:LinkButton ID="btnUpdate" runat="server" Text="Uppdatera" CommandName="update" /></td>
<td style="padding:3px 5px;"><asp:LinkButton ID="btnDelete" runat="server" Text="Ta bort" CommandName="delete" /></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color:#f6ef92">
<td style="padding:3px 5px; width:60px;"><a href="/produkt/<%# Eval("productId") %>/<%# Eval("productName").ToString().ToLower().Replace(" ", "-").Replace("(", "").Replace(")", "").Replace("å", "a").Replace("ä", "a").Replace("ö", "o")%>.aspx" style="color:#3D0B3F"><img src="http://webadmin.blissdance.se/webfiles/funkykidz/product-images/<%# Eval("productImageName") %>" width="60" height="60" /></a></td>
<td style="padding:3px 5px; width:370px;"><strong><a href="/produkt/<%# Eval("productId") %>/<%# Eval("productName").ToString().ToLower().Replace(" ", "-").Replace("(", "").Replace(")", "").Replace("å", "a").Replace("ä", "a").Replace("ö", "o")%>.aspx" style="color:#3D0B3F"><%# Eval("productName") %><asp:Literal ID="lrlSize" runat="server" Text='<%# " - " + Eval("basketProductSize") %>' Visible='<%# Eval("basketProductSize") != "" %>' /></a></strong></td>
<td style="padding:3px 5px; width:50px;"><asp:TextBox ID="txtNb" runat="server" Width="25px" Text='<%# Eval("basketProductQuantity") %>' /></td>
<td style="padding:3px 5px; width:60px;"><%# Eval("productTotal")%> kr</td>
<td style="padding:3px 5px;"><asp:LinkButton ID="btnUpdate" runat="server" Text="Uppdatera" CommandName="update" /></td>
<td style="padding:3px 5px;"><asp:LinkButton ID="btnDelete" runat="server" Text="Ta bort" CommandName="delete" /></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
<tr style="background-color:#f6ef92">
<td style="padding:3px 5px; width:70px; border-top:#333 1px solid"></td>
<td style="padding:3px 5px; width:360px; border-top:#333 1px solid"></td>
<td style="padding:3px 5px; width:50px; border-top:#333 1px solid"><strong>Frakt:</strong></td>
<td style="padding:3px 5px; width:60px; border-top:#333 1px solid"><asp:Label ID="lblFreightCost" runat="server" /> kr</td>
<td style="padding:3px 5px; border-top:#333 1px solid"></td>
<td style="padding:3px 5px; border-top:#333 1px solid"></td>
</tr>
<tr style="background-color:#f6ef92">
<td style="padding:3px 5px; width:70px;"></td>
<td style="padding:3px 5px; width:360px;"></td>
<td style="padding:3px 5px; width:50px;"><strong>Totalt:</strong></td>
<td style="padding:3px 5px; width:60px;"><asp:Label ID="lblTotalCost" runat="server" /></td>
<td style="padding:3px 5px;"></td>
<td style="padding:3px 5px;"></td>
</tr>
</FooterTemplate>
</asp:DataList>
</tbody>
</table>
</asp:PlaceHolder>
<div> </div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
Och i följande i codebehind för update och delete event:
protected void Delete_Command(object source, DataListCommandEventArgs e)
{
//Delete event to db
GetCurrentBasket();
string script = "";
script += "<script language='javascript'>";
script += "$('#webshop-basket').click(function()";
script += "{";
script += "$(this).next('#webshop-basket-content').slideToggle(600);";
script += "});";
script += "</script>";
ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", script, false);
}
protected void Update_Command(object source, DataListCommandEventArgs e)
{
//Update event to db
GetCurrentBasket();
string script = "";
script += "<script language='javascript'>";
script += "$('#webshop-basket').click(function()";
script += "{";
script += "$(this).next('#webshop-basket-content').slideToggle(600);";
script += "});";
script += "</script>";
ScriptManager.RegisterStartupScript(this, this.GetType(), "temp", script, false);
}
Ändrar jag sedan antal eller tar bort en produkt så funkar det. Om jag sedan direkt efter vill ändra eller ta bort en produkt till så uppdateras inte datalisten.
Produktantalet eller borttagningen sker men det syns inte förrän hela sidan laddas om på nytt. Updatepanelen ska ju uppdateras vid varje postback.
Någon som har någon idé om vad jag missat?