0
寻找一种方式来动态删除数据列中的行,为用户提供一种“清理”其输入接口的方法。 asp datalist从SQL中加载,然后用户在将表发送到另一个数据库之前操作该表。如何动态删除DataList中的行c#asp
我有一个功能'addRows'通过使用数据表会话变量,向它添加行然后重新绑定到数据列表,但我似乎无法得到相同的功能与删除行。
当前逻辑是使用datalist'delRows'命令,从asp数据列表中获取当前输入或修改的数据,将其分配给数据表,通过数据表循环并删除某些字段为空的行,然后重新绑定datatable到asp datalist。
当前代码进行后处理,但不能让DT填充错误 “DT = NULL”:
if (e.CommandName == "delRows")
{
DataList DataList1 = (DataList)FindControl("DataList1"); //find datalist in current state
Session["dataList1"] = DataList1; //assign datalist to session variable
DataTable dt = Session["dataList1"] as DataTable; //populate datatable with datalist session
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
DataRow dr = dt.Rows[i];
string check = dr["item_no"].ToString();
if (check == String.Empty)
{
dr.Delete();
}
}
DataList1.DataSource = dt;
DataList1.DataBind();
}
希望有一个更好的方式来做到这一点!更不用说工作了....
你在哪里将数据绑定到DataList。你为什么不使用DataTable来检索你的数据? – MethodMan
你在哪里给这个变量赋值? Session [“dataList1”] = DataList1;'back backwards – MethodMan
Session [“dataList1”]被绑定在addRow命令中。我相信我遇到的问题是如何获取当前数据列表状态,这意味着用户可以对其进行修改,但是我需要获取“当前状态”并循环访问它。我想把它抓到一个会话变量,然后会话到一个数据表(dt),然后循环通过表。 Session [“dataList1”] = DataList1;将从prev行抓取找到的datalist控件,然后将其分配给会话变量。 – SDG