美文网首页
邮件上一封与下一封功能

邮件上一封与下一封功能

作者: 对王之王对穿肠 | 来源:发表于2017-03-14 17:52 被阅读0次

    2017-3-14

    在早上的时候想把邮件上一封与下一封功能完成了。

    因为上下功能的按钮是用input type=image做的,所以本想用HTML 服务器控件完成,结果掉入坑里了,当 input=button  的时候是能够触发onserverclick 服务端的事件处理,所以想用同样的方法,结果搞了好久不行,最后发现原来是 type为 image的时候不能触发服务端事件。

    protected void changeEmail(object sender, EventArgs e)

    {

        HtmlInputImage Btn = sender as HtmlInputImage;

        string sqlString = "";

    //取得与当前 id 相临的上一封或下一封的邮件id

     if (Btn.ID.Contains("last"))

            sqlString = "select top 1 ID from IN_MAIL where ID>" + ID;

        else

           sqlString = "select top 1 ID from IN_MAIL where ID<" + ID+“ order by id desc”;

       Hashtable hs = Me.Maildb.SelectHashtable(sqlString);

        var newID = Convert.ToInt32(hs["ID"] + "");

        txid.Value = newID.ToString();

        QueryData(newID);

    }

    所以上面的代码是不能用了,没办法就只能用js来提交了。

    所以添加了个一般处理程序,获取方式大致与上面一致。

    此为处理程序

           接着用js 发送请求,接收数据并处理,此处使用 jq 的POST 方法及按钮代码

    按钮 脚本

         为什么要给点击后的按钮设置失效?

            因为在点击下一封后,请示数据,这个过程是异步的,所以用户仍然可以点击页面上任何有效的部分,如果当前请求还在进行中,那就会发生数据库错误,所以此处禁用按钮。

    至于js 中的first 与last 是当前的所显示邮件的最大与最小 ID, 用于判断是否请求的邮件超出范围。

    这就是大概的效果图了

    相关文章

      网友评论

          本文标题:邮件上一封与下一封功能

          本文链接:https://www.haomeiwen.com/subject/fiihnttx.html