Click here to Skip to main content
15,892,059 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi
I have this table with a textbox and some fruits. If the user is order:

2 apple
2 bananas
2 peach
1 pineapple

And then they click on a button Update and then this panel close and a new panel come up and say:

This have you been order: (How do I save this in the session)
2 apple
2 bananas
2 peach
1 pineapple

Please insert your adress and click the send button.

This is what I am been trying:

C#
<asp:Panel ID="Panel_visfrugt" runat="server">
        <table border="1">
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [frugt]"></asp:SqlDataSource>
            <tr>
                <td>Antal</td>
                <td><asp:Label ID="Label1" runat="server" Text=""></asp:Label></td>
            </tr>
            <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnItemCommand="Repeater1_ItemCommand">
                <ItemTemplate>

            
            <tr>
                <td><%#Eval("frugt_navn") %></td>
                <td><asp:TextBox ID="txtbox1" runat="server" Width="30"></asp:TextBox></td>
                
                    <asp:HiddenField ID="HiddenField1" runat="server" />
                
            </tr>
           
    </ItemTemplate>
            </asp:Repeater>
        </table>
    
    <asp:Button ID="Button1" runat="server" Text="Læg i kurv" OnClick="Button1_Click1" /> 
    </asp:Panel>
        <asp:Panel ID="Panel_vis" runat="server" >
            
            <h4>De har nu lagt disse ting i kurven</h4>
           <%-- <asp:Repeater ID="Repeater3" runat="server">
                <ItemTemplate>--%>

              <%#Eval("frugt_navn") %>

            <asp:Label ID="Label_vis" runat="server" Text="Label"></asp:Label>
            
 <%-- </ItemTemplate>
            </asp:Repeater>--%>
        </asp:Panel>
       
        <asp:Button ID="Button2" runat="server" Text="slet session" OnClick="Button2_Click" />


C#
private int Value = 0;
    protected void Page_Load(object sender, EventArgs e)
    {
       
        Panel_visfrugt.Visible = true;
        Panel_vis.Visible = false;
        
       
    }

 protected void Button1_Click1(object sender, EventArgs e)
    {

        foreach (RepeaterItem item in Repeater1.Items)
        {
            if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
            {
                TextBox Textbox_antal = item.FindControl("txtbox1") as TextBox;

                // opret forbindelsen til databasen
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());

                // opret et SqlCommand object
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conn;

                //Sql sætningen
                cmd.CommandText = "SELECT * FROM frugt WHERE frugt_id = @frugt_id" ;


                cmd.Parameters.Add("@frugt_id", SqlDbType.VarChar).Value = Textbox_antal.Text;

                // åben forbindelsen til databasen
                conn.Open();

                // opret en SqlDataReader og navngiv den "reader"
                SqlDataReader reader = cmd.ExecuteReader();

                // hvis brugeren findes i databasen - hvis der er noget i "reader"
                if (reader.Read())
                {
                    // opret din session som er "beviset" på at du er logget ind
                    Session["frugt_navn"] = reader["frugt_id"].ToString();
                    

                   

                }
                if (Textbox_antal != null)
                {
                    if (string.IsNullOrEmpty(Textbox_antal.Text))
                    {
                        Textbox_antal.Text = "0";
                    }
                }


                Value = Convert.ToInt32(Value + int.Parse(Textbox_antal.Text));
                //Session["frugt_antal"] = Value;

                if (Value != 7)
                {
                    Label1.Text = "Der er 7 nu";
                    Panel_visfrugt.Visible = false;
                    Panel_vis.Visible = true;

                }
                else if (Value > 7)
                {
                    Label1.Text = "Det er kun muligt at bestille 7 stk frugt";

                }
            }            
        }
       
            //Label_vis.Text = Convert.ToString(Session["frugt"]);
            Label_vis.Text = Convert.ToString(Session["frugt_navn"]);
        
        
          
              
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Session.Abandon();
        Response.Redirect("Default.aspx");
    }


/Tina
Posted

1 solution

You are saving the session data with
C#
Session["frugt_navn"] 


So that doesn't seem to be the problem :-)
I do not believe you can reuse this session data in the aspx page (anyway, I don't know how to do that). Try this:

C#
private int Value = 0;
private string frugt_navn;

protected void Page_Load(object sender, EventArgs e)
{

    Panel_visfrugt.Visible = true;
    Panel_vis.Visible = false;
    frugt_navn = (string)Session["frugt_navn"];

}


After doing this in the Page_Load you can use the value of the global variable. It should also be possible to use this variable (I've done that before) in your aspx but I cannot find an example right now. I remember you should at least make it public then.
 
Share this answer
 
Comments
Mart Rijkers 11-Oct-13 11:32am    
I couldn't stand not knowing how. I looked it up for you, here's a nice answer:
http://stackoverflow.com/questions/8883262/get-variable-value-from-code-behind-and-use-in-aspx-page-control
It should get you further.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900