首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

求帮助!Timer与foreach的有关问题

2013-03-04 
求帮助!Timer与foreach的问题。点击开始发送,执行Timer1_Tick前台无刷新显示:总数,发送成功数,和失败数,现

求帮助!Timer与foreach的问题。
点击开始发送,执行Timer1_Tick  
前台无刷新显示:总数,发送成功数,和失败数,
现在的代码只能显示最后的结果,无法动态逐条显示。

/////aspx代码/////
<asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel" runat="server">
    <ContentTemplate>
       总数量:<asp:Label ID="sum" runat="server" Text=""></asp:Label>条,成功发送:<asp:Label ID="success" runat="server" Text=""></asp:Label>,发送失败:<asp:Label ID="failure" runat="server" Text=""></asp:Label> 
       <asp:Timer ID="Timer1" runat="server" Interval="2000" ontick="Timer1_Tick"></asp:Timer>
    </ContentTemplate>
</asp:UpdatePanel>

<asp:Button ID="Button2" runat="server"
                        Text="开始发送" onclick="StartSend_Click" />


/////////////////////  cs代码////////////////
   SendMail sm = new SendMail();  
     protected void Page_Load(object sender, EventArgs e)
        {            
            if(!IsPostBack)
            {            
            Timer1.Enabled = false;
            string dz = Request["dz"];
            string fwq = Request["fwq"];
            string content = Request["content"];
            msmodel = msbll.GetModel(int.Parse(fwq)); //获取服务器信息 
              codemodel = codebll.GetModel(int.Parse(content));  //获取发送内容文件地址
              string contentbody = MailContentBind(codemodel.Dzqk_content);//获取发送内容
            }
            sum.Text = sum_num.ToString();
            success.Text = success_num.ToString();
            failure.Text = failure_num.ToString();
       }

        protected void StartSend_Click(object sender, EventArgs e)
        {
           Timer1.Enabled = true;  //开始发送          
        }


        protected void Timer1_Tick(object sender, EventArgs e)
        {        
            DataSet ds = mabll.GetAll(int.Parse(dz));// 获取邮件地址


              sum_num = ds.Tables[0].Rows.Count;         //获取地址总数          
            foreach (DataRow dr in ds.Tables[0].Rows) //遍历邮件地址
               {
                string mail_to = dr["MailAddress"].ToString();
                Boolean issend = sm.SendMyMail(msmodel.Mailserver, msmodel.Mailservername, msmodel.Mailaccountname, msmodel.Mailpwd, mail_to, codemodel.Dzqk_name, contentbody); //发送邮件
                if (issend == true)
                {
                    success_num++;  //发送成功
                }
                else
                {
                    failure_num++;  //发送失败
                }
            }

        } timer foreace
[解决办法]
用ajax来实现
[解决办法]
foreach中也没有让页面显示啊,你把pageload中显示那几行放到循环中,要么用js去更新页面
[解决办法]
js+ajax就行
[解决办法]
js+ajax  如何实现 需要花点时间。
[解决办法]
要用js去控制页面显示呀,要不然服务器端控件你没有刷新的话,后台值虽然变化了,但是却没有显示出来
[解决办法]
jquery+ajax来实现把
把你服务器的定时器换成js的定时器
代码不就写了  给点参考资料 相信LZ很聪明的
JavaScript定时器

Asp.net Jquery Ajax 实例

不懂的地方可以去看jquery的帮助文档 很有用的哦

热点排行