删除datagrid中的选中的记录

delectation 2004-06-18 12:35:46
手动创建datagrid行,列,比如(a.aspx)
id | name | sex | edit | dele |
1 | xx | male| question1|questin2|
其中id,name,sex读数据库中的记录,而edit,dele手动创。
1、在edit下放一个什么控件,点击后转到另一个页面b.aspx(b.aspx,有三个textbox),并且b.aspx中的textbox分别显示a.aspx中datagrid相对应记录(id,name,male)的值。
2,dele下放一个什么控件,点击先弹出一个“是否删除的对话框”,当点击“是”,可以直接删除对应的记录(datagrid中不再显示该条记录,数据库也删除该条记录).
...全文
175 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
delectation 2004-06-24
  • 打赏
  • 举报
回复
有没有完整
可用的代码
delectation 2004-06-22
  • 打赏
  • 举报
回复
还有什么办法没有
不能用呀
lxcc 2004-06-21
  • 打赏
  • 举报
回复
http://dev.csdn.net/develop/article/28/28250.shtm
delectation 2004-06-21
  • 打赏
  • 举报
回复
请发你测试过,可以用的代码!
delectation 2004-06-21
  • 打赏
  • 举报
回复
最好是c#+asp.net代码
feixiang1234 2004-06-21
  • 打赏
  • 举报
回复
<asp:TemplateColumn>
<HeaderStyle Wrap="False" HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="1%" BackColor="White"></ItemStyle>
<HeaderTemplate>
删  除
</HeaderTemplate>
<ItemTemplate>
<input type="button" onclick="javascript:if(confirm('你确定要删除吗?'))window.location.href='?action=delete&id=<%# DataBinder.Eval(Container.DataItem,"id") %>';" value="删除">
</ItemTemplate>
<FooterStyle Wrap="False" HorizontalAlign="Center"></FooterStyle>
<FooterTemplate>
删  除
</FooterTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Wrap="False" HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center" Width="1%" BackColor="White"></ItemStyle>
<HeaderTemplate>
编  辑
</HeaderTemplate>
<ItemTemplate>
<input type="button" onclick="window.location.href='admin_editnews.aspx?action=edit&id=<%# DataBinder.Eval(Container.DataItem,"id") %>';" value="编辑">
</ItemTemplate>
<FooterStyle Wrap="False" HorizontalAlign="Center"></FooterStyle>
<FooterTemplate>
编  辑
</FooterTemplate> </asp:TemplateColumn>

后台的删除代码:
if(!Page.IsPostBack)
{
if(Request["action"]!=null&&Request["action"].Equals("delete"))
{
deletenews(Request["id"]);
}

}
private void deletenews(string id)
{
SqlCommand SqlComm=new SqlCommand();
System.Data.SqlClient.SqlConnection SqlConn=new System.Data.SqlClient.SqlConnection(ConnectionString);
SqlConn.Open();
SqlComm.Connection=SqlConn;
SqlComm.CommandText="delete from NewsData where id="+id;
SqlComm.ExecuteNonQuery();
SqlComm.Dispose();
SqlConn.Close();
string filepath=Server.MapPath("..\\")+"\\news\\shtml\\"+id+".shtml";
if(File.Exists(filepath))
File.Delete(filepath);
}
至于编辑的代码跟删除差不多,只要稍加修改就可以了。
Tony8002003 2004-06-21
  • 打赏
  • 举报
回复
一、在DataGrid的列模板中写:
(1):<asp:ButtonColumn Text="删除" CommandName="Delete" HeaderText="删 除"></asp:ButtonColumn>
(2):OnDeleteCommand="People_Delete" 

二、在代码区(CS)中写删除的SQL语句及其方法用来进行删除:
  public void People_Delete(object sender, DataGridCommandEventArgs e)
  {
   string DeleteSql="";
   ……
  }
三、在"DataGrid"的"ItemDataBound"事件写如下代码,用来弹出删除对话框:
private void dg_detail_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
  LinkButton delBttn = (LinkButton)e.Item.Cells[20].Controls[0];
delBttn.Attributes.Add("onclick","javascript:return confirm('确定要删除这条记录吗?');");
happer6012 2004-06-21
  • 打赏
  • 举报
回复
第一个问题用选择列,把要传的值通过session传到别的页面!当然要用ItemCommand了,
Response.Redirect()就可以了!
menuvb 2004-06-21
  • 打赏
  • 举报
回复
第二个问题

没试过弹出窗口,所以我只能给你删除记录的

Private Sub DataGrid1_ItemCommand1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
If e.CommandName = "del" Then
Dim OrderProject As LScgzb.common.OrderProject = New LScgzb.common.OrderProject
OrderProject.CfzbssDel(CInt(e.Item.Cells(0).Text))‘执行删除记录的操作,e.item.cells(0).text 获取的是该记录的id字段的值,你可以相应更改
Response.Redirect("a.aspx")
End If
End Sub
menuvb 2004-06-21
  • 打赏
  • 举报
回复
先回答第一个问题

一,
Private Sub DataGrid1_ItemCommand1(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
If e.CommandName = "edit" Then
Response.Redirect("b.aspx?id=" & e.Item.Cells(0).Text & "&name=" & e.item.cells(1).text & "&male=& e.item.cells(2).text )
'//说明e.item.cell(0).text 获取第一列的id的值,以下cells(1),cells(2)也一样。到时一个url的地址是http://www.aaa.com/b.aspx?id=1&name=zc&mble=a,你到时在b.aspx利用request.queststring()来获取值
End If
End Sub
shoutor 2004-06-21
  • 打赏
  • 举报
回复
我可以给你一个事例,MSN:nightawk@netease.com
int64 2004-06-21
  • 打赏
  • 举报
回复
private void PowerDataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //删除
Role DeleteRole=new Role();
SqlDataReader mydr=DeleteRole.GetRoleInUserRoles(Convert.ToInt32(e.Item.Cells[2].Text));
if(mydr.Read())
{ // Page.RegisterStartupScript("check", "<script>alert('该用户组内有用户存在。\n\n请清空该用户组内的用户先!');</script>");
PopupWindow(this,"该用户组内有用户存在。请清空该用户组内的用户先!");
return;
}
DeleteRole.DeleteRole(Convert.ToInt32(e.Item.Cells[2].Text));
this.MyDataBind();
Label10.Text="删除用户组成功!";
Page.RegisterStartupScript("check", "<script>alert('删除用户组成功!');</script>");
}

private void PowerDataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{ //编辑
Session["ChangeRoleID"]=e.Item.Cells[2].Text;// Convert.ToInt32
Session["ChangeRoleName"]=e.Item.Cells[3].Text;
Server.Transfer("RoleAdd.aspx");
}
delectation 2004-06-21
  • 打赏
  • 举报
回复
在grid的属性生成器里面,列 里面你可以添加 按钮列 里面就有编辑、删除之后,删除的事件应该怎么样写?
int64 2004-06-21
  • 打赏
  • 举报
回复
在grid的属性生成器里面,列 里面你可以添加 按钮列 里面就有编辑、删除等。。。
delectation 2004-06-21
  • 打赏
  • 举报
回复
不应该没有回答呀

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧