5.54 How can I put up a confirmation question when the user tries to delete a row in the datagrid by clicking on the row header and pressing the Delete key? http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp#q889q
解决方案 »
- 怎样判断Oracle数据库的字段为布尔值
- 抛砖引玉。自己写的工具类,有没有人能够使用泛型改写下,再贴出来。也欢迎大家拿去用,欢迎对代码做修改和指正。
- 用什么方法可以实时的把基类转换成子类
- 寻求C#Winform教程或学习网站
- 自己写了一个ActiveX控件用在网页中,在纯HTML文件中可以调用控件自定义的属性,但在ASP文件中却提示方法找不到,请问如何解决这个问题(内附
- 应用installshield打包时候删除临时文件夹失败
- 如何查看某个事件具体挂了几个方法
- 自己写得异常类如何才能捕捉到所有得异常?
- 谁知道怎样辨别美金/100元的
- 如何设置WinForm下面的DevExpress控件中LookUpEdit文字居中?
- 怎么将进度条放到状态栏上?
- 关于C#版的发贴问题
'执行删除
Public Sub dg_Item(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
If e.CommandName = "Delete" Then
Dim del As Integer
Dim dc As SqlConnection
Dim cm As SqlCommand
Dim da As SqlDataAdapter
Dim ds As DataSet
'获得任一行id值
del = e.Item.Cells(0).Text
dc = New SqlConnection(classconn.strconn)
dc.Open() '数据在企业时做物理删除
If Request.Cookies("tx1").Value = "qy" Then
cm = New SqlCommand("delete from e_xmry where id=" & del, dc)
End If
'数据经申报确认后删除时只能添加标志
If Request.Cookies("tx1").Value = "qr" Then
cm = New SqlCommand("update e_xmry set e_xm_sbzt = '已删除' where id=" & del, dc)
End If
cm.ExecuteNonQuery()
'重新绑定表格
da = New SqlDataAdapter("select e_xmry.*,c_zcs.c_zcs_name,c_zw.c_zw_name from e_xmry,c_zcs,c_zw where e_xmry.c_us_code='" & Request.Cookies("yhdm").Value & "' and e_xmry.c_zcs_id1 =c_zcs.c_zcs_id and e_xmry.C_zw = c_zw.c_zw_id and e_xmry.e_xm_sbzt <> '已删除' and e_xmry.e_xm_id = '" & Request.Cookies("id").Value & "'", dc)
ds = New DataSet()
da.Fill(ds, "e_xmry")
dg.DataSource = ds
End If
End Sub '删除对话框
Public Sub dg_Bound(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
If e.Item.ItemIndex > -1 Then
Dim k As HyperLink = CType(e.Item.Cells(9).FindControl("DelBtn"), HyperLink)
Dim x As String = e.Item.Cells(0).FindControl("DeleteRecord").UniqueID
k.NavigateUrl = "javascript:doconfirm('你确认删除吗?','" & x & "','')"
k.Text = "删除"
xh1 = xh1 + 1
e.Item.Cells(1).Text = xh1.ToString
End If
End Sub注意DATAGRID中要添加“删除”的按钮列(转为模板)(下面是HTML代码片段)
**********************JSP代码***************************
<script language="javascript">
<!--
function doconfirm(ask,arg1,arg2) {
if(confirm(ask)) __doPostBack(arg1,arg2);
}
// -->
</script>
**********************************************************
<asp:datagrid id="dg" runat="server" BorderStyle="Dashed" Font-Size="X-Small" Width="800px" Height="10px" BackColor="Transparent" BorderColor="Olive" OnItemDataBound="dg_Bound" OnItemCommand="dg_Item" PageSize="5" AllowPaging="True" AutoGenerateColumns="False">
<SelectedItemStyle ForeColor="Blue"></SelectedItemStyle>
<HeaderStyle Font-Size="X-Small" Font-Names="宋体" BackColor="SkyBlue"></HeaderStyle>
<Columns>
<asp:TemplateColumn HeaderText="删除">
<HeaderStyle ForeColor="Black" Width="1cm"></HeaderStyle>
<ItemStyle ForeColor="Red"></ItemStyle>
<ItemTemplate>
<asp:Hyperlink id="DelBtn" text="dele" Runat="server"></asp:Hyperlink>
<asp:LinkButton id="DeleteRecord" runat="server" text="" CommandName="Delete" Visible="true"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText="下一页" PrevPageText="上一页" ForeColor="Green" Position="Top"></PagerStyle>
</asp:datagrid>
我是在winForm下的
每做一次删除操作,就要刷新一次数据库,然后再从数据库里读出数据来填充DataGrid,
如果记录很多的话,速度会很慢啊。
1、建立一个LinkButton的列模板
<ItemTemplate>
<asp:LinkButton id="cmdDel" runat="server" Text="删除" CommandName="Delete" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>2、在DataGrid中的ItemCreated事件中加入如下代码LinkButton lb;
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
lb=(LinkButton)e.Item.Cells[5].FindControl("cmdDel");
lb.Attributes["onclick"]="javascript:return confirm('确定删除该论题吗?');";
}
其中的参数你自己改成你相应的。我就是这么做的,可以。