请教一个有关DataGrid删除的问题?

clbo 2006-07-10 09:35:58
为什么我的DataGrid删除就不能正常删除呢?

下面是我的前台代码:
<%@ Page language="c#" Codebehind="Admin_NewsModify.aspx.cs" AutoEventWireup="false" Inherits="cpAdExtend.Admin.Admin_NewsModify" %>
<%@ Register TagPrefix="ftb" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Admin_NewsModify</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<LINK href="../Css/style.css" type="text/css" rel="stylesheet">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:label id="Label1" style="Z-INDEX: 101; LEFT: 464px; POSITION: absolute; TOP: 48px" runat="server"
Width="64px">新闻管理</asp:label><asp:datagrid id="DataGrid1" style="Z-INDEX: 102; LEFT: 176px; POSITION: absolute; TOP: 80px"
runat="server" Width="688px" BorderColor="#3366CC" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" AutoGenerateColumns="False"
Height="232px" AllowPaging="True">
<SelectedItemStyle Font-Bold="True" ForeColor="#CCFF99" BackColor="#009999"></SelectedItemStyle>
<ItemStyle ForeColor="#003399" BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="#CCCCFF" BackColor="#003399"></HeaderStyle>
<FooterStyle ForeColor="#003399" BackColor="#99CCCC"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="ID" ReadOnly="True" HeaderText="序号"></asp:BoundColumn>
<asp:BoundColumn DataField="Title" HeaderText="新闻标题"></asp:BoundColumn>
<asp:BoundColumn DataField="Content" HeaderText="新闻内容"></asp:BoundColumn>
<asp:BoundColumn DataField="Click" HeaderText="浏览次数"></asp:BoundColumn>
<asp:BoundColumn DataField="AddTime" HeaderText="添加时间"></asp:BoundColumn>
<asp:HyperLinkColumn Text="修改" DataNavigateUrlField="ID" DataNavigateUrlFormatString="Admin_NewsExit.aspx?ID={0}"
HeaderText="修改新闻">
<ItemStyle VerticalAlign="Middle"></ItemStyle>
</asp:HyperLinkColumn>
<asp:TemplateColumn HeaderText="删除">
<ItemTemplate>
<asp:Button id="btnDelete" runat="server" CommandName="UserDelete" Text="删除"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#003399" BackColor="#99CCCC" Mode="NumericPages"></PagerStyle>
</asp:datagrid></FONT></form>
</body>
</HTML>


后台代码如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
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 AdExtend.Model;
using AdExtend.SQLServerDAL;


namespace cpAdExtend.Admin
{
/// <summary>
/// Admin_NewsModify 的摘要说明。
/// </summary>
public class Admin_NewsModify : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Label Label1;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面

if(!IsPostBack)
dataBind();
}

private void dataBind()
{
string sql="select * from News";
SqlConnection conn=new SqlConnection(SQLHelper.connStr);
SqlDataAdapter sda=new SqlDataAdapter(sql,conn);
DataSet ds=new DataSet();
sda.Fill(ds,"news");
DataView dv=ds.Tables["news"].DefaultView;
DataGrid1.DataSource=dv;
DataGrid1.DataBind();
}

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

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

}
#endregion

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex=e.NewPageIndex;
dataBind();
}

private void DataGrid1_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", "return confirm('你确定删除这条记录吗?');");
break;
}
}

}

private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
if(e.CommandName == "Delete")
{
this.DeleteRow(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}
}

private void DeleteRow(string i)
{
SqlConnection conn=new SqlConnection(SQLHelper.connStr);
SqlCommand cmd = new SqlCommand("DELETE FROM News WHERE (ID = "+i+")",conn);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}

}
}


请各位帮忙看看,谢谢大家了!
...全文
199 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
clbo 2006-07-10
  • 打赏
  • 举报
回复
这个属性没有让我绑定的东西啊?
zhangxiaopin 2006-07-10
  • 打赏
  • 举报
回复
DataGrid控件中DataKeyField属性你邦定字段了吗?
clbo 2006-07-10
  • 打赏
  • 举报
回复
刚才改了个地方“Delete”改为“UserDelete”
结果出现了:
if(e.CommandName == "UserDelete")
行 96: {
行 97: this.DeleteRow(this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
行 98: }

这样的错误?
不理解!
ashen219 2006-07-10
  • 打赏
  • 举报
回复
<asp:ButtonColumn Text="<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div>"
CommandName="UserDelete">

复制这个试试!代替原来的。
clbo 2006-07-10
  • 打赏
  • 举报
回复
我只是想加多一个删除确认一下!
luanwey 2006-07-10
  • 打赏
  • 举报
回复
也有可能已经删除了.你刷新一下页面..看是不是已经删除了.如果是那就是你重新绑定的问题了
luanwey 2006-07-10
  • 打赏
  • 举报
回复
为什么不直接用这个事件呢DataGrid1_DeleteCommand.还要另外写..有些麻烦...
cscer 2006-07-10
  • 打赏
  • 举报
回复
在删除数据后是不是需要重新绑定一次数据呢
clbo 2006-07-10
  • 打赏
  • 举报
回复
我都试了好多种方法了,都是不行,真是晕了!
还请大家帮忙一下,谢谢了~!

62,046

社区成员

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

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

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

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