gridview 自定义删除不起作用

yongnicheng 2009-12-21 10:14:07

<asp:GridView ID="GrdAds" runat="server"
AutoGenerateColumns="False" CellPadding="2"
CellSpacing="1" EnableViewState="False" Font-Names="宋体"
Font-Size="10pt" GridLines="None"
Width="778px" datakeynames="ID" AllowPaging="True"
onpageindexchanging="GrdAds_PageIndexChanging" PageSize="20" onrowdeleting="GrdAds_RowDeleting"
>
<Columns>
<asp:BoundField HeaderText="客户名称" />
<asp:BoundField HeaderText="联系电话" />
<asp:BoundField HeaderText="联系地址" />
<asp:BoundField HeaderText="投放日期" />
<asp:BoundField HeaderText="截至日期" />

<asp:TemplateField>
<ItemTemplate>
<%--此去编写绑定的代码--%>
<tr>
<td>
<asp:HyperLink ID="HyperLinkCode" Text='<%# Eval("CustomerName") %>' NavigateUrl='<%# "EditPage.aspx?id="+Eval("ID") %>'
runat="server" />
</td>

<td>

<%# Eval("Tel") %>
</td>
<td>
<%# Eval("Address") %>
</td>
<td>
<%# Eval("RunTime") %>
</td>
<td>
<%# Eval("EndTime") %>
</td>
<td>
<asp:LinkButton ID="LinkDel" runat="server" CommandName="delete" CommandArgument='<%#Eval("ID") %>'>删除</asp:LinkButton> //这个就是我定义的删除按钮
</td>
</td>
</tr>

</ItemTemplate>

</asp:TemplateField>
</Columns>

</asp:GridView>




protected void GrdAds_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//这里是后台代码,为什么我在这里设置断点,点击删除,根本就没跳到这里来,也就是说,我自己定义的删除按钮根本就没执行后台代码,怎么解决啊 ?
}
...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
真爱无限 2011-10-18
  • 打赏
  • 举报
回复
知道了,在加上 EnableViewState="False"
xiaojuanting 2011-05-05
  • 打赏
  • 举报
回复
楼上的很不错嘛
xingshungames 2009-12-21
  • 打赏
  • 举报
回复
用rowcommand的

if (CommandName="delete")
{
//应该执行的代码
}
legu1 2009-12-21
  • 打赏
  • 举报
回复
用RowCommand来试试,判断CommandName='d'来进行删除操作
cgwinsky 2009-12-21
  • 打赏
  • 举报
回复
 
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string strConnnection = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=";
strConnnection += Server.MapPath("..\\db\\quanguo.mdb");
OleDbConnection myconn = new OleDbConnection(strConnnection);
//GridView1.DataKeyNames = new string[] { "id" };
myconn.Open();
GridView1.DataKeyNames = new string[] { "shiid" };
//使用 Value 属性确定记录的主键值。
//设置
String shiid = GridView1.DataKeys[e.RowIndex].Value.ToString();
String sql = "delete from shi where shiid =" + shiid;
//Response.Write("<script>alert('dddd')</script>");
DataSet ds = new DataSet();
OleDbCommand delcmd = new OleDbCommand(sql, myconn);
try
{
delcmd.ExecuteNonQuery();
Response.Write("<script>alert('删除成功')</script>");
}
catch (OleDbException ex)
{

}
myconn.Close();
// sda.Fill(ds, "shengb");
//重新绑定
this.GridView1.DataSource = myBind();
this.GridView1.DataBind();
// myconn.Close();
}

希望对你有帮助
jshi123 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yangzheng1128 的回复:]
引用 4 楼 xie_yanke 的回复:
删除 EnableViewState="False"

请问这句是什么意思,我删除后就跳转过来了
但是我其他页面的 这句代码还在,但它们也执行了删除啊 ?
为什么啊?
[/Quote]

如果写了EnableViewState="False", 那你在后台写绑定数据的时候,就不要加IsPostBack判断
比如一般的写法是
if (!IsPostBack)
{
GrdAds.DataSource = bindData();
GrdAds.DataBind();
}
要配合禁用ViewState的设置,就要把if判断去掉,总之,要保证在onrowdeleting事件前要能够还原出页面回调前的各行的原始状态。
vip__888 2009-12-21
  • 打赏
  • 举报
回复
delete 改成Delete 试一下
yongnicheng 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xie_yanke 的回复:]
删除 EnableViewState="False"
[/Quote]
请问这句是什么意思,我删除后就跳转过来了
但是我其他页面的 这句代码还在,但它们也执行了删除啊 ?
为什么啊?
xie_yanke 2009-12-21
  • 打赏
  • 举报
回复
删除 EnableViewState="False"
yongnicheng 2009-12-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ivws_19 的回复:]
用rowcommand事件
[/Quote]
不是用rowdeleting事件吗 ?
comzheng 2009-12-21
  • 打赏
  • 举报
回复
是在ItemCommand事件里执行删除操作的。。
ivws_19 2009-12-21
  • 打赏
  • 举报
回复
用rowcommand事件

62,254

社区成员

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

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

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

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