GridViewの中ボタンがクリックされたときにArrayListにアイテムを追加します
質問
私はGridViewの中で「add to cart」ボタンをクリックしたときに、私はこれはArrayListにITEMID渡すことができました。
行のリストからアイテムIDを追加する必要がありますしかし、問題は、私は、以前のアイテムIDが新しい項目で上書きされるボタンをクリックして毎回代わりに、私はArrayListを拡張したいということです。
public partial class Drama_k : System.Web.UI.Page
{
string Cn=@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ewap_k.mdf;Integrated Security=True;User Instance=True";
ArrayList arrValues = new ArrayList(4);
protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="AddToCart")
{
int index = Convert.ToInt32(e.CommandArgument);
Session["item"] = GridView2.DataKeys[index].Value.ToString();
arrValues.Add(Session["item"]);
GridView1.DataSource = arrValues;
GridView1.DataBind();
}
}
}
解決
ArrayListのはどこかに格納されていないことを忘れないでください、あなたは、ユーザーがクリックした項目をセッションから取得ユーザーのセッションで、ボタンによって引き起こされる各ポストバックに保管して追加する必要があります。
編集:ここでは、セッションでのArrayListを格納し、各ポストバックでそれを取得する方法の小さなサンプルがある
public partial class _Default : System.Web.UI.Page
{
ArrayList array;
protected void Page_Load(object sender, EventArgs e)
{
if(Session["array"] == null)
{
array = new ArrayList();
Session.Add("array", array);
}
else
array = Session["array"] as ArrayList;
GridView1.DataSource = array;
GridView1.DataBind(); //Edit 2
}
protected void Button1_Click(object sender, EventArgs e)
{
array.Add(DateTime.Now);
}
}
あなたはまだ疑問を持っている場合は、私に知らせます。
他のヒント
あなたはちょうどそれがポストバックの間でその値を保持しますので、ArrayList
またはViewState
にそのSession
を格納する必要があります。
所属していません StackOverflow