zoukankan      html  css  js  c++  java
  • 邮件的自动补全功能以及人员姓名的自动补全功能(来自华三)

    邮件的自动补全功能用的是jquery-ui.js

     抄送人员的自动补全功能,即邮件的自动补全功能,来自t_User表中的Email这个字段,比如输入zml,点击回车,就会自动出现zml@govaze.com

     或者根本就不需要点击回车

     前台代码

    <ext:TextBox ID="Text3" runat="server" Label="实际参与人员" EmptyText="输入至少三个字符(自动补全)" MinLength="3" Required="true" ShowRedStar="true"/>

    <ext:TextBox ID="Text102" Label="抄送人员" EmptyText="输入至少三个字符(自动补全)" runat="server" />

    js中的对应的代码

    <script src="../res/js/jquery.min.js" type="text/javascript"/>
    <script src="../res/autocomplete/jquery-ui.js" type="text/javascript"/>
    <script type="text/javascript">

    var Text102ID = '<%= Text102.ClientID %>';
    var Text3ID = '<%= Text3.ClientID %>';

    // 将字符串 val 以逗号空格作为分隔符,分隔成数组
    function split(val) {
    return val.split(/,s*/);
    }

    // 取得以逗号空格为分隔符的最后一个单词
    // 比如,输入为 "C++, C#, JavaScript" 则输入出 "JavaScript"
    function extractLast(term) {
    return split(term).pop();
    }

    邮件的自动补全功能 

    function bindAutocompleteEmail(ClientID, cache) {

    $('#' + ClientID + ' input').bind("keydown", function (event) {
    // 通过 Tab 选择一项时,不会使当前文本框失去焦点
    if (event.keyCode === $.ui.keyCode.TAB &&
    $(this).data("autocomplete").menu.active) {
    event.preventDefault();
    }

    }).autocomplete({
    minLength: 3,
    autoFocus: true,
    source: function (request, response) {
    // 将最后一个单词作为输入值,从列表中过滤出备选项
    var term = extractLast(request.term);
    if (term.length < 3) {
    return;
    }
    if (term in cache) {
    response(cache[term]);
    return;
    }
    else {
    request.term = term;
    }
    request.userName = F('<%= userName.ClientID %>').getValue();

    $.getJSON("getUserEmailHandler.ashx", request, function (data, status, xhr) {
    cache[term] = data;
    response(data);
    });

    },
    focus: function () {
    // 阻止某一项获得焦点时,更新文本框的值
    return false;
    },
    change: function (event, ui) {
    var terms = split(this.value);
    // 移除用户正在输入项
    terms.pop();
    terms.push("");
    this.value = terms.join(", ");
    },
    select: function (event, ui) {
    var terms = split(this.value);
    // 移除用户正在输入项
    terms.pop();
    // 添加用户选择的项
    terms.push(ui.item.value);
    // 添加占位符,确保字符串的最后以逗号空格结束
    terms.push("");
    this.value = terms.join(", ");
    return false;
    }
    });
    }

    人员姓名的自动补全功能

    function bindAutocomplete(id, cache) {

    $('#' + id + ' input').autocomplete({
    minLength: 3,
    autoFocus: true,
    mustMatch: true,
    source: function (request, response) {
    var term = request.term;
    if (term in cache) {
    response(cache[term]);
    F(id).setValue(cache[term][0]);
    return;
    }
    request.userName = F('<%= userName.ClientID %>').getValue();

    $.getJSON("getUserAll2Handler.ashx", request, function (data, status, xhr) {
    cache[term] = data;
    response(data);
    if (data) {
    F(id).setValue(data[0]);
    }
    else {
    F(id).setValue("");
    }
    });
    }

    });
    }

    F.ready(function () {

    var cache1 = {};
    var cache2 = {};
    bindAutocompleteEmail(Text102ID, cache1);//调用邮件的自动补全功能
    bindAutocomplete(Text3ID, cache2);//人员姓名的自动补全功能


    });

    getUserEmailHandler.ashx在自动补全邮件的代码中还需要此文件

     a_User_dis_EmailList,调用了此存储过程,执行了最后一个分支,只有最后一个分支里面出现的数据,才会在邮件的输入框中出现

    实际参与人员用到的.ashx文件

     

     

  • 相关阅读:
    C语言格式化字符串细节 --- %*s %*c %*.*s
    ROC曲线与AUC计算总结
    python 数字列表排序,输出对应的索引 | 转载
    python 类间的有趣调用
    Linux下以16进制形式显示文件内容的方法
    一些书签
    椭圆曲线算数原理与实现
    中国剩余定理来解密RSA密文
    在GridView控件内文本框实现TextChanged事件,勾选复选框时 :textbox文本框可编辑,编辑文本框的数字后 总金额会重新计算并统计
    关于RDLC子报表添加参数 错误“本地报表处理期间出错 。值不能为空。 参数名:value” 错误解决方法
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14377100.html
Copyright © 2011-2022 走看看