| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1463 人关注过本帖
标题:[求助]DataGrid删除数据
只看楼主 加入收藏
winsonjie
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-5-20
收藏
 问题点数:0 回复次数:11 
[求助]DataGrid删除数据

如何在DataGrid删除时弹出一个Confirm对话框,提示"是否删除", 按"确定"删除,否则不处理....我现在无论是"确定"还是"取消".它都把我的数据删了..在这里贴上我的源码....各位帮帮手..看哪里有问题了,也可以把你们可运行的代码贴上来...谢谢...


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace 删除确认
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid grdTest;
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
private DataSet ds = new DataSet();

private void Page_Load(object sender, System.EventArgs e)
{
if(!this.IsPostBack)
{
string strConnection = "Data Source=127.0.0.1;Initial Catalog=pubs;User Id=sa;Password=123;";
SqlConnection myConnection = new SqlConnection(strConnection);
SqlDataAdapter myAdapter = new SqlDataAdapter("SELECT * FROM bb",myConnection);
myAdapter.Fill(ds);
this.grdTest.DataSource = ds.Tables[0].DefaultView;
this.grdTest.DataKeyField = "ID";
this.grdTest.DataBind();

}
}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.grdTest.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.grdTest_ItemCommand);
this.grdTest.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.grdTest_ItemDataBound);
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

private void grdTest_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
/*
switch(e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
case ListItemType.EditItem:
{
Button btn = (Button)e.Item.FindControl("btnDelete");
btn.Attributes.Add("onclick", "javascript:confirm('你是否确定删除这条记录');");
break;
}
}
*/
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Button btn = (Button)e.Item.FindControl("btnDelete");
btn.Attributes.Add("onclick","javascript:return confirm('是否删除?');");

}


}

private void grdTest_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{

//if(e.CommandName == "Delete")
//{
//this.DeleteRow(this.grdTest.DataKeys[e.Item.ItemIndex].ToString());

//}
string i = this.grdTest.DataKeys[e.Item.ItemIndex].ToString();
string strConnection = "Data Source=127.0.0.1;Initial Catalog=pubs;User Id=sa;Password=123;";

SqlConnection myConnection = new SqlConnection(strConnection);
SqlCommand cmd = new SqlCommand("DELETE FROM bb WHERE (ID = "+i+")",myConnection);
myConnection.Open();
cmd.ExecuteNonQuery();
myConnection.Close();
grdTest.DataBind();
Response.Write("<script language=javascript>alert('删除成功');</script>");

//}
}
private void DeleteRow(string i)
{

string strConnection = "Data Source=127.0.0.1;Initial Catalog=pubs;User Id=sa;Password=123;";

SqlConnection myConnection = new SqlConnection(strConnection);
SqlCommand cmd = new SqlCommand("DELETE FROM bb WHERE (ID = "+i+")",myConnection);
myConnection.Open();
cmd.ExecuteNonQuery();
myConnection.Close();
grdTest.DataBind();
Response.Write("<script language=javascript>alert('删除成功');</script>");
}

private void Button1_Click(object sender, System.EventArgs e)
{

}


}
}

搜索更多相关主题的帖子: DataGrid 数据 删除 
2007-01-31 11:36
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
哪里有错??

飘过~~
2007-01-31 12:27
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
你在哪里接受了对话框的返回值?没看见你对 确定 和 取消 有分支处理

2007-01-31 13:57
winsonjie
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-5-20
收藏
得分:0 
语法没错误..主要的错误是当我按了DataGrid中的删除按钮弹出的confirm对话框时.无论我
按了"确定"还是"取消",程序都会删除我按的那行的数据,我觉得问题出在confirm上的返回值里

2007-01-31 15:33
winsonjie
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-5-20
收藏
得分:0 
如楼上所说的分支处理...我一直都认为confirm弹出时,按"确定"将继续执行,"取消"则不再运行.
可能是我这个理解有错导致程序的错误,请问楼上.如果根据confirm弹出的"确定","取消"进行分支处理?

2007-01-31 15:36
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
以下是引用winsonjie在2007-1-31 15:36:22的发言:
如楼上所说的分支处理...我一直都认为confirm弹出时,按"确定"将继续执行,"取消"则不再运行.
可能是我这个理解有错导致程序的错误,请问楼上.如果根据confirm弹出的"确定","取消"进行分支处理?

不会用javascript 但是应该会有一个返回值才能得知用户点的是哪个钮. "confirm弹出时,按"确定"将继续执行,"取消"则不再运行"这个理解应该时候错误的. 不管用户按了什么, 代码都会继续执行. 类似使用 MessageBox
所以你应该有个类似 if RetValue = "Yes" then
...
else
...
这样的处理.


2007-01-31 16:16
winsonjie
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-5-20
收藏
得分:0 
如果是在C/S里面可以很容易得到返回值,但现在是B/S,javascript是客户端脚本,而我是根据这个客户端脚本执行服务器的东西,得到javascript返回值后就不知道怎样再继续运行服务器端的代码了...而且上面我的程序也有"return"( btn.Attributes.Add("onclick","javascript:return confirm('是否删除?');");
return这里已经是得到返回值了..但怎样再根据这返回值判断是否运行代码就有问题了

2007-01-31 16:25
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
"return"( btn.Attributes.Add("onclick","javascript:return confirm('是否删除?');");
改成
btn.Attributes.Add("onclick","javascript:return confirm('是否删除?');
并且放到page_load里面

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-01-31 17:15
上炕不脱鞋
Rank: 1
等 级:新手上路
威 望:1
帖 子:332
专家分:0
注 册:2006-3-19
收藏
得分:0 
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.EditItem:
case ListItemType.AlternatingItem:
Button myDeleteButton = (Button)e.Item.FindControl("btnDelete");
myDeleteButton.Text = "删除";
myDeleteButton.Attributes.Add("onclick", "return confirm('您真的要删除第 " + (e.Item.ItemIndex+1).ToString() + " 行吗?');");
break;
}
}

试试这个

新建的群(C#):23384106 验证注明
2007-02-01 11:03
winsonjie
Rank: 1
等 级:新手上路
帖 子:129
专家分:0
注 册:2006-5-20
收藏
得分:0 
如果是这样做也不行,提示“未将对象设置引用到实例”
谁有做过这个功能的??麻烦贴一下你们的源码,好让我看看哪里出问题了,都搞了几天了,还是有错,谢了

2007-02-01 11:30
快速回复:[求助]DataGrid删除数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017611 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved