Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Uppdateringen fungerar inte

Postades av 2008-10-08 10:39:33 - Magnus Hallberg, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 1038 personer

Uppdateringen fungerar inte och jag får inga felmeddelande, Problemet är att något med "txtQuantity" Jag får värdet som finns i den från början. Den läser alltså inte värdet när jag har ändrat. Jag tror det måste vara nåt med DataBind() men kan inte hitta felet och jag vet inte om det är det som är fel heller.

<code>
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
populateControls();
}

private void populateControls()
{
this.Title = ConfigurationManager.AppSettings["SiteName"] + " - Din varukorg";

DataTable dt = CartAccess.GetCartItems();

if (dt.Rows.Count == 0)
{
grdCart.Visible = false;
lblCartTotAmount.Visible = false;
lblStatus.ForeColor = System.Drawing.Color.Red;
lblStatus.Text = "Din varukorg är tom";
lblCartInfo.Visible = false;
}
else
{
grdCart.DataSource = dt;
grdCart.DataBind();
lblStatus.ForeColor = System.Drawing.Color.Green;
lblStatus.Text = "Dessa varor finns i din varukorg";
decimal amount = CartAccess.GetCartTotalAmount();
lblCartTotAmount.Text = String.Format("{0:c}", amount);
}
}

protected void btnUpdateCart_Click(object sender, EventArgs e)
{
int rowsCount = grdCart.Rows.Count;
GridViewRow row;
TextBox txtQuantity;
TextBox txtColorID;
TextBox txtSizeID;
TextBox txtClothesID;
int colorID;
int sizeID;
int clothesID;
int prodID;
int quantity;
bool success = true;

for (int i = 0; i < rowsCount; i++)
{
row = grdCart.Rows[i];
prodID = Int32.Parse(grdCart.DataKeys[i].Value.ToString());
txtQuantity = (TextBox)row.FindControl("txtQuantity");
txtClothesID = (TextBox)row.FindControl("txtClothesID");
txtColorID = (TextBox)row.FindControl("txtColorID");
txtSizeID = (TextBox)row.FindControl("txtSizeID");

if (Int32.TryParse(txtClothesID.Text, out clothesID))
clothesID = int.Parse(txtClothesID.Text);
else
clothesID = 0;

if (Int32.TryParse(txtColorID.Text, out colorID))
colorID = int.Parse(txtColorID.Text);
else
colorID = 0;

if (Int32.TryParse(txtSizeID.Text, out sizeID))
sizeID = int.Parse(txtSizeID.Text);
else
sizeID = 0;

if (Int32.TryParse(txtQuantity.Text, out quantity))
quantity = int.Parse(txtQuantity.Text);


lblStatus.Text += "<br />ProdID: " + prodID.ToString();
lblStatus.Text += "<br />Quant: " + quantity.ToString();
success = CartAccess.UpdateCart(prodID, quantity, colorID, sizeID, clothesID);

lblStatus.Text += success ? "Good" : "Fail";
}

populateControls();
}

.aspx
<asp:GridView ID="grdCart" runat="server" DataKeyNames="productID"
AutoGenerateColumns="False" GridLines="Horizontal">
<HeaderStyle BackColor="#c3bc02" />
<AlternatingRowStyle BackColor="#f7f5cd" />
<Columns>

<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:TextBox ID="txtClothesID" runat="server" Text='<%#Eval("clothesID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:TextBox ID="txtColorID" runat="server" Text='<%#Eval("colorID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:TextBox ID="txtSizeID" runat="server" Text='<%#Eval("sizeID") %>' />
</ItemTemplate>
</asp:TemplateField>

<asp:BoundField DataField="productName" HeaderText="Produkt" ReadOnly="True" >
<ItemStyle CssClass="regText" Width="150px" />
</asp:BoundField>
<asp:TemplateField HeaderText="Antal">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" runat="server" Text='<%#Eval("quantity") %>' Width="20" />
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" VerticalAlign="Top" Width="30px" />
</asp:TemplateField>
<asp:BoundField DataFormatString="{0:c}" DataField="price" HeaderText="Pris"
ReadOnly="True" >
<ItemStyle CssClass="regText" HorizontalAlign="Right" VerticalAlign="Top"
Width="100px" />
</asp:BoundField>
<asp:BoundField DataField="color" HeaderText="Färg">
<ItemStyle CssClass="regText" HorizontalAlign="Center" VerticalAlign="Top"
Width="70px" />
</asp:BoundField>
<asp:BoundField DataField="size" HeaderText="Storlek">
<ItemStyle CssClass="regText" HorizontalAlign="Center" VerticalAlign="Top"
Width="50px" />
</asp:BoundField>
<asp:BoundField DataField="clothes" HeaderText="Plagg">
<ItemStyle CssClass="regText" HorizontalAlign="Center" VerticalAlign="Top"
Width="70px" />
</asp:BoundField>
<asp:BoundField DataField="subTot" DataFormatString="{0:c}"
HeaderText="Sub.Total">
<ItemStyle CssClass="regText" HorizontalAlign="Right" VerticalAlign="Top"
Width="100px" />
</asp:BoundField>
</Columns>
</asp:GridView>
<table style="width:530px; padding:3px; margin-top:5px;">
<tr>
<td style="text-align:right; width:85%" class="boldText">TOTALT: </td>
<td style="width:15%; text-align:right;">
<asp:Label ID="lblCartTotAmount" runat="server" CssClass="yellowBorder boldText" BackColor="#c3bc02" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align:right;">
<asp:Button ID="btnUpdateCart" runat="server" Text="Uppdatera korgen"
onclick="btnUpdateCart_Click" />
&nbsp; &nbsp; &nbsp;
<asp:Button ID="btnToCashier" runat="server" Text="Till kassan" />
</td>
</tr>
</table>

</code>


Svara

Sv: Uppdateringen fungerar inte

Postades av 2008-10-08 14:13:51 - Oskar Johansson

Använder du viewstate?


Svara

Sv:Uppdateringen fungerar inte

Postades av 2008-10-08 17:57:49 - Magnus Hallberg

Nej, det gör jag inte. Men en kompis till mej provade detta när jag lagt ut det och det fungerar när man skriver in noll, då ska det radera och det gör det. Detta tyder ju på att det är nåt i SP som inte stämmer. Jag lägger ut SP när jag kommer hem.


Svara

Sv: Uppdateringen fungerar inte

Postades av 2008-10-08 20:28:17 - Oskar Johansson

Hm.. Om du inte använder Viewstate så skulle jag annars tippa på att det var anledningen; som det är nu så skapas ju inte raderna förrens _efter_ att uppdateringskoden har exekverats. Vilket skulle betyda att ingenting uppdateras. Fast det förklarar dock inte att du lyckas radera rader? Å andra sidan, att du lyckas radera rader, utan att använda viewstate känns dock mystiskt.. Någon är det som inte stämmer skulle jag vilja påstå


Svara

Sv:Uppdateringen fungerar inte

Postades av 2008-10-08 22:07:21 - Magnus Hallberg

Nåt är det som du säger som inte stämmer. Har gått igenom SP utan att hitta vad som är galet. Skickar upp den om nån annan kan hitta vad som är fel. Skriver jag in noll eller mindre så fungerar SP.

<code>
ALTER PROC updateCart
@cartID CHAR(36),
@prodID INT,
@quant INT,
@colorID INT,
@sizeID INT,
@clothesID INT
AS
IF(@quant <= 0)BEGIN
EXEC deleteCartItem @cartID, @prodID, @colorID, @sizeID, @clothesID
IF(@@error <> 0)GOTO error
RETURN
END
ELSE BEGIN
UPDATE cart
SET
quantity = @quant,
dateAdded = getdate()
WHERE cartID = @cartID AND productID = @prodID AND sizeID = @sizeID AND colorID = @colorID AND clothesID = @clothesID
IF(@@error <> 0)GOTO error
RETURN
END

error:
IF(@@error <> 0)BEGIN
RAISERROR('Det gick inte att uppdatera din korg.', 16, 1)
RETURN
END
</code>


Svara

Sv: Uppdateringen fungerar inte

Postades av 2008-10-08 22:23:46 - Magnus Hallberg

Har upptäckt vad som är fel, men kan inte hitta var det är.
prodID, colorID och clothesID är alla 0 det är ju därför det inte uppdateras. Jag har ändrat lite i koden så jag skickar upp den igen.

<code>
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
populateControls();
}

private void populateControls()
{
this.Title = ConfigurationManager.AppSettings["SiteName"] + " - Din varukorg";

DataTable dt = CartAccess.GetCartItems();

if (dt.Rows.Count == 0)
{
grdCart.Visible = false;
lblCartTotAmount.Visible = false;
lblStatus.ForeColor = System.Drawing.Color.Red;
lblStatus.Text = "Din varukorg är tom";
lblCartInfo.Visible = false;
}
else
{
grdCart.DataSource = dt;
grdCart.DataBind();
lblStatus.ForeColor = System.Drawing.Color.Green;
lblStatus.Text = "Dessa varor finns i din varukorg";
decimal amount = CartAccess.GetCartTotalAmount();
lblCartTotAmount.Text = String.Format("{0:c}", amount);
}
}

protected void btnUpdateCart_Click(object sender, EventArgs e)
{
int rowsCount = grdCart.Rows.Count;
GridViewRow row;
TextBox txtQuantity;
TextBox txtColorID;
TextBox txtSizeID;
TextBox txtClothesID;
int colorID;
int sizeID;
int clothesID;
int prodID;
int quantity;
bool success = true;

for (int i = 0; i < rowsCount; i++)
{
row = grdCart.Rows[i];
prodID = Int32.Parse(grdCart.DataKeys[i].Value.ToString());
txtQuantity = (TextBox)row.FindControl("txtQuantity");
txtClothesID = (TextBox)row.FindControl("txtClothesID");
txtColorID = (TextBox)row.FindControl("txtColorID");
txtSizeID = (TextBox)row.FindControl("txtSizeID");

if (Int32.TryParse(txtClothesID.Text, out clothesID))
clothesID = int.Parse(txtClothesID.Text);


if (Int32.TryParse(txtColorID.Text, out colorID))
colorID = int.Parse(txtColorID.Text);
else
colorID = 0;

if (Int32.TryParse(txtSizeID.Text, out sizeID))
sizeID = int.Parse(txtSizeID.Text);


if (Int32.TryParse(txtQuantity.Text, out quantity))
quantity = int.Parse(txtQuantity.Text);

// Test för att se vad variablerna har för värde...
lblStatus.Text += "<br />ProdID: " + prodID.ToString();
lblStatus.Text += "<br />Quant: " + quantity.ToString();
lblStatus.Text += "<br />colorID: " + colorID.ToString();
lblStatus.Text += "<br />sizeID: " + sizeID.ToString();
lblStatus.Text += "<br />clothesID: " + clothesID.ToString();
success = CartAccess.UpdateCart(prodID, quantity, colorID, sizeID, clothesID);

lblStatus.Text += success ? "Good" : "Fail";
}
// bortkommenterat för att jag skafå fram lblStatus...
//populateControls();
}
</code>


Svara

Sv:Uppdateringen fungerar inte

Postades av 2008-10-08 22:36:27 - Magnus Hallberg

När jagsätter de tre textboxarna till Visible = Treu så fungerar det. Kan man inte hadom hidden? Det var j''''t märkligt tycker jag.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 707
27 958
271 751
830
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies