• 全部
  • .NET Framework
  • ASP
  • Web Services
  • .NET互联网桌面应用
  • VB
  • 图表区
  • 分析与设计
  • 组件/控件开发
  • AppLauncher
  • 问答

请高手请教一个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

但我想要编写后台代码而不是前台,该如何做呢 ?
...全文
11 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
只能用前台代码
回复
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2003-08-05 09:50
社区公告
暂无公告