안녕하세요 저는 텍스트 박스의 데이터를 데이터베이스가 아닌 로컬 gridview에 추가하고 있습니다. 그것의 판매원이 제품을 saling하는 salepage처럼. 지금은 그 gridview에서 행을 삭제하려면하지만 난 항상 삭제하는 동안 예외가 있어요. 친절하게 도와주세요. 여기에 내 코드를 어디에 내가 데이터를 가져 와서 gridview에 저장됩니다. 감사.gridview에서 특정 행을 삭제하는 방법. gridview의 기본 삭제 명령 단추를 사용하십시오.
DataTable dt1 = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
gridVIEWData();
GridView1.DataSource = dt1;
GridView1.DataBind();
}
private void gridVIEWData()
{
dt1.Columns.Add("pName", typeof(string));
dt1.Columns.Add("pCategory", typeof(string));
dt1.Columns.Add("price", typeof(string));
dt1.Columns.Add("pQuantity", typeof(string));
dt1.Columns.Add("totalPrice", typeof(string));
Session["dtInSession"] = dt1; //Saving Datatable To Session
}
protected void Button3_Click(object sender, EventArgs e)
{
if (Session["dtInSession"] != null)
dt1 = (DataTable)Session["dtInSession"]; //Getting datatable from session
Int32 total = Convert.ToInt32(txt_quantity.Text) * Convert.ToInt32(txt_price.Text);
DataRow dr = dt1.NewRow();
dr["pName"] = DropDownList2.SelectedItem;
dr["pCategory"] = DropDownList1.SelectedItem;
dr["price"] = txt_price.Text;
dr["pQuantity"] = txt_quantity.Text;
dr["totalPrice"] = total;
dt1.Rows.Add(dr);
Session["dtInSession"] = dt1; //Saving Datatable To Session
GridView1.DataSource = dt1;
GridView1.DataBind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
// string value = GridView1.DataKeys[e.RowIndex].Values["price"].ToString();
//GridView1.DeleteRow(Convert.ToInt32(value));
//GridView1.DeleteRow(GridView1.SelectedIndex);
// dt1.Rows.RemoveAt(GridView1.SelectedIndex);
Int32 index = GridView1.SelectedIndex;
GridView1.DeleteRow(index);
}
m 당신은 DataKeyNames =를 사용할 필요가 –
"위치 -1에서 어떤 행이 없다" "pName은은"[pName은] 고유해야합니다. –