请高手请教一个DataGrid的问题!(高分)(js与后台代码的结合问题)

bin_bin 2003-08-05 09:50:14
小弟有一个问题,
我想每次按一下删除按钮(放在datagrid的模板列里),然后弹出messagebox,提示确认删除,然后按确定按钮,则触发我编写的后台代码.
Sub DataGrid_ItemCreated(ByVal Sender As Object, ByVal e As DataGridItemEventArgs) Handles DgComment.ItemCreated
Select Case e.Item.ItemType
Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.EditItem
Dim myDeleteButton As Button
myDeleteButton = e.Item.FindControl("BtnDelete")
myDeleteButton.Attributes.Add("onclick", "return confirm('是否确定要删除该评论,对该用户来说将损失其名望值?');")
End Select
End Sub <-- 可以实现的,即每个按钮按下都会弹出,但小弟不知其机理,ItemCreate是什么?还有为什么要加Select case ,e.Item.FindControl("BtnDelete")为什么没有cells,因为我还没有指明第几列?

Sub DataGrid_ItemCommand(ByVal sender As Object, ByVal e As DataGridCommandEventArgs) Handles DgComment.ItemCommand
If e.CommandName = "DeleteComment" Then
Dim conn As New Connection.DataBase()
Dim str As String
Dim CommentID As String
CommentID = e.Item.Cells(1).Text.Trim.ToString
str = "DeleteComment '" + CommentID + "'"
conn.NoQuery(str)
conn.Dispose()

Dim record As String
record = "删除文章作者为" + LblAuthor.Text.Trim + ",文章名为" + LblArticleTitle.Text.Trim + "的评论"
RecordAction(Session("Nick"), record)

End If
End Sub
<--按钮按下去之后的后台代码,但它更本不执行!为什么,请高手指教,还有一种方法是在前台(aspx)中编写代码,如下:

<asp:Button id="BtnDelete" CommandName="DeleteComment" OnClick="DataGrid_DeleteRow" runat="server" Text="删除该评论"></asp:Button>

Sub DataGrid_DeleteRow(ByVal sender As Object, ByVal e As EventArgs)

Response.Write("HEY, you can't delete that company!")
End Sub

但我想要编写后台代码而不是前台,该如何做呢 ?
...全文
44 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bin_bin 2003-08-05
  • 打赏
  • 举报
回复
我要按一下按钮之后弹出对话框,按确定之后才触发事件,该如何做??
zhangjunjie1 2003-08-05
  • 打赏
  • 举报
回复
up
ifengfeng 2003-08-05
  • 打赏
  • 举报
回复
DataGrid_ItemDataBound
junmingl 2003-08-05
  • 打赏
  • 举报
回复
没必要这么复杂吧!
在Page_Load事件中增加一个定义:
ibtnCancel.Attributes.Add("onclick","javascript:return confirm('是否确定要删除该评论,对该用户来说将损失其名望值?')");
其中ibtnCancel是DataGrid中的模板列
然后将删除代码写在ibtnCancel_Click事件中!
Fortune2k1 2003-08-05
  • 打赏
  • 举报
回复
还有:
<ItemTemplate>
<asp:Button Text="设置" Width="50" CommandName="set" ID="lnkListSchool" Runat="server">'>
</asp:Button>
</ItemTemplate>

CommandName="set",必须这样,才能出发DataGrid_ItemCommand
Fortune2k1 2003-08-05
  • 打赏
  • 举报
回复
至于第三个问题,可能是因为你的PageLoad里面填充Datagrid记录的时候,没有用If not Ispostback,因为每次点击控件的时候,都要执行Pageload事件,如果每次点击了一个Datagrid里面的按钮,都重进行一次数据的绑定,会使后台的事件无法出发.
Fortune2k1 2003-08-05
  • 打赏
  • 举报
回复
ItemCreate是DataGrid填充数据时执行的事件,每添一条,执行一次.
e.Item.FindControl("BtnDelete")没有Cells,也可以,这样的话是Find整个行,即Item.

LesleyChiu 2003-08-05
  • 打赏
  • 举报
回复
这样就可以了,在dategrid前台代码里面加这个就行了,
后台的触发时间不变
<Columns>
<asp:ButtonColumn Text="<div id="de" onclick="JavaScript:return confirm('确定删除吗?')">删除</div>" CommandName="Delete"></asp:ButtonColumn>
</Columns>
zhangjunjie1 2003-08-05
  • 打赏
  • 举报
回复
只能用前台代码

62,243

社区成员

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

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

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

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