GridView의 버튼을 클릭 할 때 ArrayList에 항목 추가
문제
그리드 뷰에서 '카트에 추가'버튼을 클릭 할 때 행 목록에서 itemid를 추가해야합니다.이 itemid를 배열리스트로 전달할 수있었습니다.
그러나 문제는 버튼을 클릭 할 때마다 이전 항목이 새 항목으로 덮어 쓰기 대신 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를 저장하고 각 Postback에서 검색하는 방법에 대한 약간의 샘플입니다.
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