您的位置:首页 > 编程语言 > ASP

如何处理确认删除的刷屏问题

2007-07-26 22:12 316 查看
 在.net中,DataGrid控件是比较常用的一个,而以下的情况也是比较常见的,就是一个DataGrid,每一项的后面都有一个删除的图标或按钮,点击删除后一般要提示是否确认删除,而如果确认删除后,现在的页面会自动刷新,显得比较难看。下面介绍一下我对这个问题的处理方法:

现在有一个List.aspx页:

在<HEAD></HEAD>之间加入如下的脚本:

<script language="javascript">
   function Delete(Id)
   {
    if(confirm('确定删除吗?'))
    {   
     var id  = Id;
     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
     xmlhttp.open("get","del.aspx?id=" + id,false);
     xmlhttp.send();
     var msg = xmlhttp.responseText.split("##")[0];     
     alert(msg);
     window.location = "List.aspx";     
    }    
   }
  </script>

<body MS_POSITIONING="GridLayout">
  <form id="Form1" method="post" runat="server">
   <TABLE id="Table1" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
    <TR>
     <td align="left">
      日期:
      <asp:textbox id="sj1" runat="server" BorderStyle="Groove" MaxLength="12" Width="80px" onclick="popUpCalendar(this,sj1,'yyyy-mm-dd');return false;"></asp:textbox>
      -
      <asp:textbox id="sj2" runat="server" BorderStyle="Groove" MaxLength="12" Width="80px" onclick="popUpCalendar(this,sj2,'yyyy-mm-dd');return false;"></asp:textbox>
      <asp:Button id="btSearch" runat="server" Text="查询"></asp:Button> 
      <asp:button id="btAdd" runat="server" Text="新增记录"></asp:button></td>
    </TR>
    <TR>
     <TD><asp:datagrid id="DGCost" runat="server" PageSize="15" AllowPaging="True" Width="100%" CellPadding="4"
       BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966" AutoGenerateColumns="False">
       <FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
       <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
       <AlternatingItemStyle HorizontalAlign="Center"></AlternatingItemStyle>
       <ItemStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="White"></ItemStyle>
       <HeaderStyle Font-Bold="True" HorizontalAlign="Center" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
       <Columns>
        <asp:TemplateColumn HeaderText="日期">
         <ItemTemplate>
          <a href='Edit.aspx?id=<%# DataBinder.Eval(Container, "DataItem.id") %>' title='<%# DataBinder.Eval(Container, "DataItem.Note") %>'>
          <%# DataBinder.Eval(Container, "DataItem.SubDate") %>
          </a>
         </ItemTemplate>
        </asp:TemplateColumn>
        <asp:BoundColumn DataField="ClothesCost" HeaderText="服饰"></asp:BoundColumn>
        <asp:BoundColumn DataField="FoodCost" HeaderText="食品"></asp:BoundColumn>
        <asp:BoundColumn DataField="SockCost" HeaderText="零食"></asp:BoundColumn>
        <asp:BoundColumn DataField="WaterCost" HeaderText="水"></asp:BoundColumn>
        <asp:BoundColumn DataField="ElecCost" HeaderText="电"></asp:BoundColumn>
        <asp:BoundColumn DataField="LeisureCost" HeaderText="娱乐"></asp:BoundColumn>
        <asp:BoundColumn DataField="BusCost" HeaderText="乘车"></asp:BoundColumn>
        <asp:BoundColumn DataField="ElectricCost" HeaderText="电子产品"></asp:BoundColumn>
        <asp:BoundColumn DataField="OtherCost" HeaderText="其他"></asp:BoundColumn>
        <asp:TemplateColumn HeaderText="合计">
         <ItemTemplate>
          <asp:TextBox ID=lbDayAll Width=50px BorderWidth=0 runat="server" Text='<%# GetDayAll(DataBinder.Eval(Container,"DataItem.id").ToString())%>'>
          </asp:TextBox>
         </ItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn HeaderText="修改">
         <ItemTemplate>
          <a href='Edit.aspx?id=<%# DataBinder.Eval(Container,"DataItem.id")%>'><img src="../../Images/update.gif" border="0" alt="修改"></a>
         </ItemTemplate>
         <EditItemTemplate>
         </EditItemTemplate>
        </asp:TemplateColumn>
        <asp:TemplateColumn HeaderText="删除">
         <ItemTemplate>
          <IMG alt="删除" src="../../Images/delete.gif" border="0" onclick='Delete(<%# DataBinder.Eval(Container,"DataItem.id")%>)'>
         </ItemTemplate>
        </asp:TemplateColumn>
       </Columns>
       <PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC" Mode="NumericPages"></PagerStyle>
      </asp:datagrid></TD>
    </TR>
   </TABLE>
  </form>
 </body>

del.aspx.cs如下:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace FamilyFinance.Source.DayCost
{
 /// <summary>
 /// del 的摘要说明。
 /// </summary>
 public class del : System.Web.UI.Page
 {
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   FinanceClasses.DayCost daycost = new FinanceClasses.DayCost();
   daycost.Id = int.Parse(Request["id"].ToString());
   if(daycost.Delete()>0)
   {
    Response.Write("删除成功!##");
   }
   else
   {
    Response.Write("删除失败,请联系管理员确定原因!##");
   }
  }

  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {   
   this.Load += new System.EventHandler(this.Page_Load);
  }
  #endregion
 }
}

按照以上的处理方式,比较好的解决了刷新比较明显的问题,提供给大家做一个参考。如果有更好的解决办法,还请不吝赐教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐