使用会话来查看用户的订单 [英] Ues the Session to see what the user have order

查看:93
本文介绍了使用会话来查看用户的订单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述




这张桌子上有一个文本框和一些水果。如果用户订购:



2苹果

2香蕉

2桃子

1菠萝



然后他们点击按钮更新,然后关闭此面板,然后出现一个新面板并说:



这个你有订单:(如何在会话中保存这个)

2苹果

2香蕉

2桃子

1菠萝



请插入你的地址并点击发送按钮。



这就是我一直在尝试的:



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:

<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" />







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



/Tina

推荐答案

ConnectionStrings:ConnectionString %> SelectCommand = SELECT * FROM [frugt] > < / asp:SqlDataSource >
< tr>
< td> Antal < / td >
< td>< asp:Label ID = Label1 runat = server Text = > < / asp:La bel > < / 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:按钮ID = Button1 runat = server Text = < span class =code-string> Lægikurv OnClick = < span class =code-string> 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 = 标签 > < / asp:标签 >

<% - < / ItemTemplate >
< / asp:Repeater < span class =code-keyword>> - %>
< / asp:面板 >

< asp:按钮ID = Button2 runat = server Text = slet session OnClick = Button2_Click />
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" />







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



/Tina


您正在使用
Session["frugt_navn"] 





所以这似乎不是问题:-)

我不相信你可以在aspx页面重用这个会话数据(无论如何,我不知道该怎么做)。试试这个:





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:

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"];

}





在Page_Load中执行此操作后,您可以使用全局变量的值。也应该可以在你的aspx中使用这个变量(之前我已经这样做了),但我现在找不到一个例子。我记得你至少应该把它公之于众。



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.


这篇关于使用会话来查看用户的订单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆