删除行到表后刷新Listview [英] Refresh Listview after delete a row into table

查看:81
本文介绍了删除行到表后刷新Listview的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好

在我的asp.net应用程序中有一个名为(pendingorderLV)的Listview显示了客户的挂单,它包含删除订单的删除按钮,我要找的是当用户点击每个删除按钮并显示剩余订单时,我如何使列表视图自动刷新。



代码后面的listview,用户可以从中获取它按钮进入我的应用程序名为:gotovieworder





Hello
Into my asp.net application there is a Listview called ( pendingorderLV ) shown the pending orders of the customer and it include a delete button to delete the orders, what i am looking for is how i can make the listview refresh it self when the user click on each delete button and show the remain orders.

the listview behind code where user can reach it from a button into my application called: gotovieworder


protected void gotovieworder_Click(object sender, EventArgs e)
    {


        MultiView1.ActiveViewIndex = 7;

        if (Session["UsrNme"] != null)
        {
            var user = Session["UsrNme"];
            using (var UsOrderCon = new SqlConnection(sc))
            {
                UsOrderCon.Open();

                string chksUsOrderstring = "Select count (*) from ShoppingCart where UID=@chkUID";

                SqlCommand ChkUsOrderCMD = new SqlCommand(chksUsOrderstring, UsOrderCon);

                ChkUsOrderCMD.Parameters.AddWithValue("@chkUID", user);

                var orderExists = (Int32)ChkUsOrderCMD.ExecuteScalar() > 0;

                if (orderExists)
                {

                    pendingorderpanel.Visible = true;
                    SqlDataAdapter UsOrderADPA = new SqlDataAdapter("SELECT [UID], [Product], [DateAdded], [PayMeth], [ProdDesc], [CartID] FROM [ShoppingCart] WHERE  [UID] = @uSer ", sc);

                    UsOrderADPA.SelectCommand.Parameters.AddWithValue("@uSer", Convert.ToString(Session["UsrNme"]));

                    DataSet UsOrderDST = new DataSet();
                    UsOrderADPA.Fill(UsOrderDST);
                    pendingorderLV.DataSource = UsOrderDST.Tables[0];
                    pendingorderLV.DataBind();
                    pendingorderpanel.Visible = true;


                }
                else
                {
                    UsexcOrderpanel.Visible = true;
                    UsOrderlbl.Text = "You dont have any orders, if you would like to become a premium user";
                }
            }
        }
    }





列表视图中的删除按钮代码背后是:





And the delete button inside the listview behind code is:

protected void deltPendOrder_Command(object sender, CommandEventArgs e)
    {
        using (SqlConnection DeltPndOrdSQLCon = new SqlConnection(sc))
        {
            int OrdPendID = Convert.ToInt32(e.CommandArgument);

            System.Data.SqlClient.SqlCommand DeltPendOrdcmd = new System.Data.SqlClient.SqlCommand();
            DeltPendOrdcmd.CommandType = System.Data.CommandType.Text;

            DeltPendOrdcmd.CommandText = "DELETE FROM ShoppingCart WHERE CartID = @CartID";

            DeltPendOrdcmd.Parameters.AddWithValue("@CartID", OrdPendID);
            DeltPendOrdcmd.Connection = DeltPndOrdSQLCon;
            DeltPndOrdSQLCon.Open();

            DeltPendOrdcmd.ExecuteNonQuery();
            DeltPndOrdSQLCon.Close();
            viewmsgView.Visible = true;
        }


    }

推荐答案

//This should be close. I can't test it because I don't have your datasource.
//I took out the call to the database and stuck it in its own method.
//Then after you delete, you refresh the grid with fresh data.
protected void gotovieworder_Click(object sender, EventArgs e)
{
	MultiView1.ActiveViewIndex = 7;

	if (Session["UsrNme"] != null)
	{
		var user = Session["UsrNme"];
		using (var UsOrderCon = new SqlConnection(sc))
		{
			UsOrderCon.Open();

			string chksUsOrderstring = "Select count (*) from ShoppingCart where UID=@chkUID";

			SqlCommand ChkUsOrderCMD = new SqlCommand(chksUsOrderstring, UsOrderCon);

			ChkUsOrderCMD.Parameters.AddWithValue("@chkUID", user);

			var orderExists = (Int32)ChkUsOrderCMD.ExecuteScalar() > 0;

			if (orderExists)
			{
				BindData();
				pendingorderpanel.Visible = true;
			}
			else
			{
				UsexcOrderpanel.Visible = true;
				UsOrderlbl.Text = "You dont have any orders, if you would like to become a premium user";
			}
		}
	}
}
protected void deltPendOrder_Command(object sender, CommandEventArgs e)
{
	using (SqlConnection DeltPndOrdSQLCon = new SqlConnection(sc))
	{
		int OrdPendID = Convert.ToInt32(e.CommandArgument);

		System.Data.SqlClient.SqlCommand DeltPendOrdcmd = new System.Data.SqlClient.SqlCommand();
		DeltPendOrdcmd.CommandType = System.Data.CommandType.Text;

		DeltPendOrdcmd.CommandText = "DELETE FROM ShoppingCart WHERE CartID = @CartID";

		DeltPendOrdcmd.Parameters.AddWithValue("@CartID", OrdPendID);
		DeltPendOrdcmd.Connection = DeltPndOrdSQLCon;
		DeltPndOrdSQLCon.Open();

		DeltPendOrdcmd.ExecuteNonQuery();
		DeltPndOrdSQLCon.Close();
		viewmsgView.Visible = true;
	}
	BindData();
}

protected void BindData()
{
	SqlDataAdapter UsOrderADPA = new SqlDataAdapter("SELECT [UID], [Product], [DateAdded], [PayMeth], [ProdDesc], [CartID] FROM [ShoppingCart] WHERE  [UID] = @uSer ", sc);

	UsOrderADPA.SelectCommand.Parameters.AddWithValue("@uSer", Convert.ToString(Session["UsrNme"]));

	DataSet UsOrderDST = new DataSet();
	UsOrderADPA.Fill(UsOrderDST);
	pendingorderLV.DataSource = UsOrderDST.Tables[0];
	pendingorderLV.DataBind();
}


这篇关于删除行到表后刷新Listview的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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