GridView中按指定时间更新数据

一页面:

<form id="form1" runat="server">

<input type="hidden" runat="server" id="hidSelContract" name="hidSelContract" value="GridView1_ctl02_lblStatus,1" />
    <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
    </asp:ScriptManager>

   ...

 <asp:GridView ID="GridView1" runat="server" AllowPagerable="False"
            AllowChangeCellWidth="True"   AutoGenerateColumns="False"
        CellPadding="0" DataKeyNames="ID" GridLines="None"
        CssClass="gridviewStyle" JumpButtonHeight="25px" JumpButtonWidth="25px" >
        <Columns>

        ...

<asp:TemplateField HeaderText="群发操作">
                  <ItemTemplate>
                  <input type="button" οnclick='<%# string.Format("return CheckState({0},{1})",Eval("Status").ToString().ToString(),Eval("ID").ToString().ToString()) %>'
                  class="buttonblue" value="发送"/>                      
                  </ItemTemplate>
                  <HeaderStyle CssClass="gridview_headerStyle" />
                  <ItemStyle CssClass="gridview_itemStyle" HorizontalAlign="Center" Width="40px" />
            </asp:TemplateField> 

 

二javascript:

<script language="javascript" type="text/javascript">

 

var intervalID = 0;  
        //群发邮件时审核状态验证
        function CheckState(strStateID,appID) {
            if (strStateID == "0" || strStateID == "1" || strStateID == "2" || strStateID == "4") {
                alert("提示:IT审核通过后才能群发邮件!");
                return false;
            }
            else if (strStateID == "3") {//IT审核通过
                var srcE = event.srcElement;               
                var span = srcE.parentElement.parentElement.children[4].children[0];
                var hidSelContract = document.getElementById('hidSelContract');
                hidSelContract.value = span.id + "," + appID;
                //执行群发邮件发送
                PageMethods.SendMassMail(appID);
                //span.innerHTML = "发送中";
                //每秒钟更新发送数据
                intervalID = window.setInterval("GetSendState()", 1000);
                return false;
            }
            else if (strStateID == "5") {
                alert("提示:群发邮件已在发送中!");
                return false;
            }
            else if (strStateID == "6") {
                alert("提示:群发邮件已发送完成!");
                return false;
            }
        } 

 

...

 //群发邮件发送并及时更新发送数据
        function GetSendState() {
            var hidSelContract = document.getElementById('hidSelContract');
            PageMethods.GetSendState(hidSelContract.value, ShowMessage);
        }

        //AJAX返回值:lblStatus.ClientID,发送数据(已发送/发送总数),发送状态
        function ShowMessage(result) {
            if (result != "") {                
                var arr = result.split(",");
                var lblState = document.getElementById("" + arr[0] + "");
                var hidSelContract = document.getElementById('hidSelContract');
                if (arr[2] == "6") {//群发邮件完成
                    window.clearInterval(intervalID);
                    if (lblState != null)
                        lblState.innerHTML = "发送完成";
                    var hidSelContract = document.getElementById('hidSelContract');
                    hidSelContract.value = "";
                    return;
                }
                else if (arr[2] == "7") {//邮件群发状态表,群发异常
                    window.clearInterval(intervalID);
                    hidSelContract.value = "";
                    if (lblState != null)
                        lblState.innerHTML = "发送出错";
                    else
                        alert("提示:群发邮件出错!");                    
                    return;
                }
                lblState.innerHTML = arr[1];                
            }
        }       

</script>  

 

三服务端:


/// <summary>
        /// 执行群发邮件发送
        /// </summary>
        /// <param name="applyID">群发邮件申请单ID</param>
        [System.Web.Services.WebMethod]
        public static void SendMassMail(string applyID)
        {
            EmailProxy.StartSendMail(applyID, 415, "TcpEmailService");
        }

 

/// <summary>
        /// 得到实时群发邮件状态
        /// </summary>
        /// <param name="hidSelContractValue">lblStatus.ClientID,群发邮件申请单ID(applyID)</param>
        /// <returns></returns>
        [System.Web.Services.WebMethod]
        public static string GetSendState(string hidSelContractValue)
        {
            hidSelContractValue = hidSelContractValue.Trim();
            if (string.Empty.Equals(hidSelContractValue))
                return string.Empty;
            string[] paras = hidSelContractValue.Split(',');
            if (paras.Length < 2)
            {
                return string.Empty;
            }
            string applyID = paras[1];        
            StringBuilder value=new StringBuilder();           
            if (!string.Empty.Equals(applyID))
            {
                MassMailingApplyBLL bll2 = new MassMailingApplyBLL();
                var entity = bll2.GetEntity(long.Parse(applyID));
                if (entity == null) return string.Empty;
                //此群发邮件发送完成
                value.Append(paras[0]);
                value.Append(",");
                if (entity.MassMailingSendState != null)
                {
                    value.Append(entity.MassMailingSendState.SendCount.ToString());
                    value.Append("/");
                    value.Append(entity.MassMailingSendState.TotalCount.ToString());
                    value.Append(",");
                    value.Append(entity.Status);
                }
                else//邮件群发状态表无记录
                {
                    value.Append("发送出错");
                    value.Append(",");
                    value.Append("7");
                }
            }//返回值:lblStatus.ClientID,申请单ID,发送状态
            return value.ToString();
        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值