如何在DataGrid中点击Delete弹出对话框?

shaoyuan 2003-12-22 12:40:28
如何在DataGrid的Edit、Delete属性中,点击DELETE弹出对话框?确定即删除,否则取消。
...全文
38 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
nnh 2004-01-13
  • 打赏
  • 举报
回复
這個是沒有問題的:
<%@ Page Language="vb" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">
dim MyConnection as OleDbConnection
dim cmdSelect as OleDbCommand
dim dtrReader as OleDbDataReader
Sub Page_load(sender as object,e as Eventargs)
MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\inetpub\wwwroot\nhonline\datagrid\datagrid.mdb")
if not IsPostBack() then

Mydatagrid_DataBind() 'list all
end if
End Sub

Sub Mydatagrid_DataBind()
Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("select * from news order by id desc", MyConnection)

Dim DS As DataSet = new DataSet()
MyCommand.Fill(DS, "news")
MyDataGrid.DataSource=DS.Tables("news").DefaultView
MyDataGrid.DataBind()

End Sub

sub Data_Del(obj as object, e as DataGridCommandEventArgs)
Dim MyCommand As OleDbCommand
Dim DeleteCmd As String = "DELETE from news where id = @Id"

MyCommand = New OleDbCommand(DeleteCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@Id", OleDbType.VarChar, 11))
MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
MyCommand.Connection.Open()
MyCommand.ExecuteNonQuery()
MyCommand.Connection.Close()

Mydatagrid_DataBind()
End sub

Sub DataGrid_ItemCreated(Sender As Object, e As DataGridItemEventArgs)

Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myTableCell As TableCell
myTableCell = e.Item.Cells(0)
Dim myDeleteButton As LinkButton
myDeleteButton = myTableCell.Controls(0)
myDeleteButton.Attributes.Add("onclick", _
"return confirm('Are you Sure you want to delete this recoders?');")

End Select
End Sub

</script>

<html>
<head>
<title>DropDownList.aspx</title>
<link rel="stylesheet" href="css.css" type="text/css">
</head>
<body>

<form Runat="server">
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="100"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="true"
AllowPaging="false"
pageSize="2"
DataKeyField="id"
OnDeleteCommand="Data_Del"
OnItemCreated="DataGrid_ItemCreated"
>
<Columns>
<asp:ButtonColumn HeaderText="" text="Del" CommandName="Delete" />
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Napoleo 2004-01-13
  • 打赏
  • 举报
回复
IE已经内建相关函数,呵呵

showModalDialog Method


http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/showmodaldialog.asp?frame=true
ga3ga3 2003-12-24
  • 打赏
  • 举报
回复
哈。
都有了,
收藏先。。。
shaoyuan 2003-12-24
  • 打赏
  • 举报
回复
The job completed.Thank you.

Happy Christmas!
liuyd 2003-12-23
  • 打赏
  • 举报
回复
好心人真多,基本上全了吧,,,
liuvb 2003-12-23
  • 打赏
  • 举报
回复
这么多了,已经解决了吧
muronghanbing 2003-12-23
  • 打赏
  • 举报
回复
up
wincore 2003-12-23
  • 打赏
  • 举报
回复
前边的都可以实现!
up 一下!
ninglng 2003-12-23
  • 打赏
  • 举报
回复
不错,学习
zsgbox 2003-12-23
  • 打赏
  • 举报
回复
在OnItemCreated的事件中写我认为是最好的办法,不用JavaScript
if(E.Item.ItemIndex>=0)
{
LinkButton LB=(LinkButton)E.Item.Cells[((DataGrid)sender).Columns.Count-1].Controls[0];
LB.Attributes.Add("onclick", "if(!confirm('确定要删除该行数据吗?')) return false;");
}

((DataGrid)sender).Columns.Count-1 这个是你的删除按钮所在的列
wxcnl 2003-12-23
  • 打赏
  • 举报
回复
RegisterStartupScript("Startup","<script>alert('adf');</script>")

写错了,不好意思
wxcnl 2003-12-23
  • 打赏
  • 举报
回复
RegisterStartup("Startup","<script>alert('adf');</script>")
nnh 2003-12-23
  • 打赏
  • 举报
回复
給你一個完整的代碼:
<%@ Page Language="vb" Debug="true" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script language="VB" runat="server">
dim MyConnection as OleDbConnection
dim cmdSelect as OleDbCommand
dim dtrReader as OleDbDataReader
Sub Page_load(sender as object,e as Eventargs)
MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=c:\inetpub\wwwroot\nhonline\datagrid\datagrid.mdb")
if not IsPostBack() then

Mydatagrid_DataBind() 'list all
end if
End Sub

Sub Mydatagrid_DataBind()
Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("select * from news order by id desc", MyConnection)

Dim DS As DataSet = new DataSet()
MyCommand.Fill(DS, "news")
MyDataGrid.DataSource=DS.Tables("news").DefaultView
MyDataGrid.DataBind()

End Sub

sub Data_Del(obj as object, e as DataGridCommandEventArgs)
Dim MyCommand As OleDbCommand
Dim DeleteCmd As String = "DELETE from news where id = @Id"

MyCommand = New OleDbCommand(DeleteCmd, MyConnection)
MyCommand.Parameters.Add(New OleDbParameter("@Id", OleDbType.VarChar, 11))
MyCommand.Parameters("@Id").Value = MyDataGrid.DataKeys(CInt(E.Item.ItemIndex))
MyCommand.Connection.Open()
MyCommand.ExecuteNonQuery()
MyCommand.Connection.Close()

Mydatagrid_DataBind()
End sub

Sub DataGrid_ItemCreated(Sender As Object, e As DataGridItemEventArgs)

Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myTableCell As TableCell
myTableCell = e.Item.Cells(0)
Dim myDeleteButton As LinkButton
myDeleteButton = myTableCell.Controls(0)
myDeleteButton.Attributes.Add("onclick", _
"return confirm('Are you Sure you want to delete this recoders?');")

End Select
End Sub
</script>

<html>
<head>
<title>DropDownList.aspx</title>
<link rel="stylesheet" href="css.css" type="text/css">
</head>
<body>

<form Runat="server">
<ASP:DataGrid id="MyDataGrid" runat="server"
Width="100"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"
AutoGenerateColumns="true"
AllowPaging="false"
pageSize="2"
DataKeyField="id"
OnDeleteCommand="Data_Del"
OnItemCreated="DataGrid_ItemCreated"
>
<Columns>
<asp:ButtonColumn HeaderText="" text="Del" CommandName="Delete"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
huguguhu 2003-12-23
  • 打赏
  • 举报
回复
你要去下载IE Web Controls这个控件。微软的down页面上有
acewang 2003-12-22
  • 打赏
  • 举报
回复
用js也能实现,而且很方便,把这js拷贝到页面上:
<script language="JavaScript">
function delete_confirm(e)
{
if (event.srcElement.outerText == "删除")
event.returnValue =confirm("确认要删除吗?");
}
document.onclick=delete_confirm;
</script>
yzssg 2003-12-22
  • 打赏
  • 举报
回复
放一个<INPUT id="del_statue" value="false" name="del_statue">
<script language="javascript">
function del_confirm()
{
var returnValue=window.confirm("这将删除这个客户的所有相关信息,确定删除吗?");
if(returnValue==true)
{
window.document.Form1.del_statue.value="true";
}
else
{
window.document.Form1.del_statue.value="false";
}
}
</script>


private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(IsLimit())
{
if(Request.Form["del_statue"].ToString().Trim().ToLower()=="true")
{
删除代码
}
else
{
Response.Write("<script language=javascript>alert('你没有删除权限!!!');</script>");
}

}

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{

e.Item.Cells[8].Attributes["onclick"]="javascript:del_confirm()";
}
xpzhl 2003-12-22
  • 打赏
  • 举报
回复
在进行数据绑定时添加如下代码:
for(int i=0;i<this.DataGrid1.Items.Count;i++)
{
this.DataGrid1.Items[i].Cells[10].Attributes.Add("onclick","return confirm('确定删除该记录?')");
}
shaoyuan 2003-12-22
  • 打赏
  • 举报
回复
如何在DataGrid的Edit、Delete属性中,点击DELETE弹出对话框?确定即删除,否则取消。ASP.net--C#
shaoyuan 2003-12-22
  • 打赏
  • 举报
回复
winwang:

Type 'System.Web.UI.WebControls.ButtonColumn' does not have a property named 'onClick'.

Why not?
mudboy 2003-12-22
  • 打赏
  • 举报
回复
在页面上写
加载更多回复(3)

62,039

社区成员

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

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

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

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