选择一个项目在GridView和添加到列表 [英] Selecting an item in a GridView and adding to the List

查看:190
本文介绍了选择一个项目在GridView和添加到列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经写了一张code以下获得的productID 从一个GridView时,选择链接用户点击。

Convert.ToInt32(GridView1.SelectedDataKey.Values​​ [的productID])))

但是,如果用户点击超过了这个点击较新的值替换previous。有没有一种方法,以不断增加的车列表,当用户点击一个新的项目?

希望是有道理的。

感谢

编辑:

下面是我的code的购物页面:

 公共部分类_Default:System.Web.UI.Page
{
    清单< BasketClass>购物车=新的List< BasketClass>();    保护无效GridView1_SelectedIndexChanged1(对象发件人,EventArgs的发送)
    {
        cart.Add(新BasketClass(Convert.ToInt32(GridView1.SelectedDataKey.Values​​ [的BookID])));        Session.Add(CartSess车);
        的Response.Redirect(Basket.aspx);
    }
}

我不知道如果在创建列表的位置是非常重要的?如果它被放置在click事件是否会继续创造一个新的实例不知道?

然后在篮页面我有:

 保护无效Page_Init(对象发件人,EventArgs的发送)
{
    清单< BasketClass>购物车=(列表< BasketClass>)会议[CartSess];    的foreach(BasketClass的BookID在车)
    {
        GridView1.DataSource =车;
        GridView1.DataBind();
        AccessDataSource1.SelectCommand =SELECT [的BookID] FROM [tblBook] [BOOK_TITLE];
    }
}


解决方案

您不应该在网页的顶部创建BasketCart列表对象,即使你做的那么有没有很显著的区别,我想你中央社做到这一点

 保护无效Page_Init(对象发件人,EventArgs的发送)
{
    如果(会话[CartSess]!= NULL)
    {
       的foreach(BasketClass的BookID在(列表< BasketClass>)会议[CartSess])
       {
         GridView1.DataSource =车;
         GridView1.DataBind();
        AccessDataSource1.SelectCommand =SELECT [的BookID] FROM [tblBook] [BOOK_TITLE];
       }
    }
}

和你的GridView甚至应该是:

 保护无效GridView1_SelectedIndexChanged1(对象发件人,EventArgs的发送)
{
   清单< BasketClass>大车;
   如果(会话[CartSess]!= NULL)
   {
       购物车=(列表< BasketClass>)会议[CartSess]
   }
   其他
     购物车=新的List< BasketClass>();   cart.Add(新BasketClass(Convert.ToInt32(GridView1.SelectedDataKey.Values​​ [的BookID])));   Session.Add(CartSess车);
   的Response.Redirect(Basket.aspx);
}

I have written the piece of code below to get a productID from a gridView when the user clicks on the select link.

Convert.ToInt32(GridView1.SelectedDataKey.Values["productID"])))

However, if a user clicks on this more than one click the newer value replaces the previous. Is there a way to keep adding to the cart list when the user clicks on a new item?

Hope that makes sense

Thanks

Edit:

Here's my code for the Shopping Page:

public partial class _Default : System.Web.UI.Page
{
    List<BasketClass> cart = new List<BasketClass>();

    protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
    {
        cart.Add(new BasketClass(Convert.ToInt32(GridView1.SelectedDataKey.Values["BookID"])));

        Session.Add("CartSess", cart);
        Response.Redirect("Basket.aspx");
    }
}

I dont know if the location of creating the list is important? Wasn't sure if it was placed in the click event if it would keep creating a new instance?

Then for the Basket Page I have:

protected void Page_Init(object sender, EventArgs e)
{
    List<BasketClass> cart = (List<BasketClass>)Session["CartSess"];

    foreach (BasketClass BookID in cart)
    {     
        GridView1.DataSource = cart;
        GridView1.DataBind();
        AccessDataSource1.SelectCommand = "SELECT [BookID], [book_title] FROM [tblBook] ";                     
    }
}

解决方案

You should not create BasketCart list object in the top of page, even if you do that then there is no very much significant difference, i think you cna do this:

protected void Page_Init(object sender, EventArgs e)
{    
    if(Session["CartSess"]!=null)
    {    
       foreach (BasketClass BookID in (List<BasketClass>)Session["CartSess"])
       {     
         GridView1.DataSource = cart;
         GridView1.DataBind();
        AccessDataSource1.SelectCommand = "SELECT [BookID], [book_title] FROM [tblBook] ";                     
       }
    }
}

and your GridView even should be:

protected void GridView1_SelectedIndexChanged1(object sender, EventArgs e)
{
   List<BasketClass> cart;
   if(Session["CartSess"]!=null)
   { 
       cart = (List<BasketClass>)Session["CartSess"]
   }
   else
     cart = new List<BasketClass>();

   cart.Add(new BasketClass(Convert.ToInt32(GridView1.SelectedDataKey.Values["BookID"])));

   Session.Add("CartSess", cart);
   Response.Redirect("Basket.aspx");
}

这篇关于选择一个项目在GridView和添加到列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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