我用数据集XSD文件做为DATAGRID的数据源在实现编辑时可以实时的绑定刷新
可是在实现删除时
虽然点击删除了,可是点击完后,它还显示在上面,
而实际上这条记录已经删除了
当再次编辑或删除别的记录时就会看到它实际上已经被删除了:(这是怎么回事尼?
解决方案 »
- 急!急!急!急!急!asp.net网站程序员进
- asp.net用了<asp:login>控件后,无法清空文本框
- Page_Load里,如何调用事件处理方法(Object sender, EventArgs e)?
- 做好的asp.net网站发布到服务器上就不能正常运行.
- sqlcommand与sqldataadapter区别
- 如何在Datagrid中实现与用户交互功能?
- 如何实现不同的用户不同的管理菜单?
- 这个简单功能如何做?
- 关于使用vss管理项目代码的问题
- 高手帮忙,如何获得组合控件(login,changpassword,forgetpassword,register)中的按钮
- CompareValidator控件
- Repeater里可以再嵌套一个Repeater吗?
{
//绑定数据
DataBind();
}public void DataBind()
{
//绑定数据操作
}private void DelButton_Click(object sender, System.EventArgs e)
{
//删除操作
.....
//再次绑定数据
DataBind();
}
sqlDataAdapter1.Fill(zs1);
DataGrid1.EditItemIndex=-1;
DataGrid1.DataBind();
不知道这个方法对不?
{
}
里面?
{
// 在此处放置用户代码以初始化页面
//ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vbcon/html/vbwlkWalkthroughUsingDataGridWebControlToReadWriteData.htm
if (Session["dvtv"] != null)
{
dsTree1 = (dsTree)Session["dstv"];
dvTree = (DataView)Session["dvtv"];
}
else
{
daTree.Fill(dsTree1,"tree");
Session["dstv"] = dsTree1;
Session["dvtv"] = dvTree;
}
if ( !IsPostBack)
tvDataGrid.DataBind();
}
private void tvDataGrid_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
tvDataGrid.EditItemIndex = e.Item.ItemIndex;
tvDataGrid.DataBind();
} private void tvDataGrid_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
tvDataGrid.EditItemIndex = -1;
tvDataGrid.DataBind();
} private void tvDataGrid_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string name,parentID,conText,URL;
//string id;
int degree;
dsTree.treeRow r;
TextBox tb;
string key = tvDataGrid.DataKeys[e.Item.ItemIndex].ToString();
//tb = (TextBox)e.Item.Cells[2].Controls[0];
//id = tb.Text;
tb = (TextBox)e.Item.Cells[3].Controls[0];
name = tb.Text;
tb = (TextBox)e.Item.Cells[4].Controls[0];
parentID = tb.Text;
tb = (TextBox)e.Item.Cells[5].Controls[0];
degree = int.Parse(tb.Text);
tb = (TextBox)e.Item.Cells[6].Controls[0];
conText = tb.Text;
tb = (TextBox)e.Item.Cells[7].Controls[0];
URL = tb.Text;
r = dsTree1.tree.FindByid(key);
//r.id = id;
r.name = name;
r.parentid = parentID;
r.degree = degree;
r.context = conText;
r.url = URL;
daTree.Update(dsTree1);
//重新保存dstv
Session["dstv"] = dsTree1;
Session["dvtv"] = dvTree;
tvDataGrid.EditItemIndex = -1;
tvDataGrid.DataBind();
} private void tvDataGrid_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//删除代码
string key = tvDataGrid.DataKeys[e.Item.ItemIndex].ToString();
string sqlDeleteTree = "DELETE FROM tree WHERE id = '" + key + "'";
SqlCommand sqlComm = new SqlCommand(sqlDeleteTree,sqlConn);
sqlConn.Open();
sqlComm.ExecuteNonQuery();
sqlConn.Close();
Session.RemoveAll();
Response.Redirect("tvGrid.aspx",true);
} private void tvDataGrid_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
//可以在表达式后面加ASC或DESC来加以正倒序排序
if (dvTree.Sort == "id ASC")
{
dvTree.Sort = e.SortExpression + " DESC";
}
else
{
if(dvTree.Sort == "id DESC")
dvTree.Sort = e.SortExpression;
else
dvTree.Sort = e.SortExpression + " ASC";
}
tvDataGrid.DataBind();
}
DataGrid1.DataBind();
{
// 在此处放置用户代码以初始化页面
//zs是用IDE生成的数据集
sqlDataAdapter1.Fill(zs1);
if(!IsPostBack)
{
DataGrid1.DataBind();
}
}
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string delcmd="delete from pay where id="+DataGrid1.DataKeys[(int)e.Item.ItemIndex].ToString();
sqlCommand1.CommandText=delcmd;
sqlCommand1.Connection.Open();
sqlCommand1.ExecuteNonQuery();
sqlCommand1.Connection.Close();
sqlDataAdapter1.Fill(zs1);
DataGrid1.EditItemIndex=-1;
DataGrid1.DataBind();
}
我里面加了databind()了啊。
比如说删除吧。你第一次点,虽然实际上删除了,可是在页面上还是显示着。可是再删除另一条的时候,它就不见了。
Private void BindGrid()
{
DataTable dt=xx.xx() //根据方法返回DataTable(或DataReader or DataSet)
DataGridName.DataSource=dt;
DataGridName.DataBind();
}再写你删除操作
Private void InsertMethod()
{
.....
BindGrid(); //重新调用此方法即可,这点就是你的问题所在
}
{
//绑定数据
DataBind();
}
Private void BindGrid()
{
DataTable dt=xx.xx() //根据方法返回DataTable(或DataReader or DataSet)
DataGridName.DataSource=dt;
DataGridName.DataBind();
}再写你删除操作
Private void InsertMethod()
{
.....
BindGrid(); //重新调用此方法即可,这点就是你的问题所在
}
偶也喜欢这样用的