• EmailAutoComplete邮箱地址输入控件


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web.UI;
    using System.ComponentModel;
    using System.Web.UI.HtmlControls;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Collections;

    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.ui.autobox.css""text/css", PerformSubstitution=true)]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.close.gif""image/gif")]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.min.js""application/x-javascript")]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.contextmenu.r2.js""application/x-javascript")]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.templating.js""application/x-javascript")]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.ui.autobox.js""application/x-javascript")]
    [assembly: WebResource(
    "Framework.Library.Web.WebControl.jquery.ui.autobox.ext.js""application/x-javascript")]
    namespace Framework.Library.Web.WebControl
    {
        
    public class EmailAutoComplete : Control
        {
            [Category(
    "Behavior")]
            [Description(
    "璇锋眰鑾峰彇鏁版嵁鐨刄rl銆?)]
            [DefaultValue("")]
            
    public string AjaxUrl
            {
                
    get
                {
                    
    object o = ViewState["AjaxUrl"];
                    
    if (o == null)
                        
    return "";
                    
    return o.ToString();
                }
                
    set { ViewState["AjaxUrl"= value; }
            }

            
    //[Category("Behavior")]
            
    //[Description("瑕佸啓鍏ユ帶浠跺璞$殑ClientID銆?)]
            
    //[DefaultValue("")]
            
    //public string TagObjectId
            
    //{
            
    //    get
            
    //    {
            
    //        object o = ViewState["TagObjectId"];
            
    //        if (o == null)
            
    //            return this.ID + "_TagObjectId";
            
    //        return o.ToString();
            
    //    }
            
    //    set { ViewState["TagObjectId"] = value; }
            
    //}

            [Category(
    "Behavior")]
            [Description(
    "楠岃瘉鍖归厤鍓嶇JS鏂规硶銆?)]
            [DefaultValue("function(typed) { return this.text.match(new RegExp(typed, 'i')); }")]
            
    public string Match
            {
                
    get
                {
                    
    object o = ViewState["Match"];
                    
    if (o == null)
                        
    return "function(typed) { return this.text.match(new RegExp(typed, 'i')); }";
                    
    return o.ToString();
                }
                
    set { ViewState["Match"= value; }
            }

            [Category(
    "Behavior")]
            [Description(
    "鍐欏叆鑾峰彇鏁版嵁鐨勫墠绔鐞咼S鏂规硶銆?)]
            [DefaultValue("function(obj) { return obj.text }")]
            
    public string InsertText
            {
                
    get
                {
                    
    object o = ViewState["InsertText"];
                    
    if (o == null)
                        
    return "function(obj) { return obj.text }";
                    
    return o.ToString();
                }
                
    set { ViewState["InsertText"= value; }
            }

            [Category(
    "Behavior")]
            [Description(
    "鍒楄〃椤规ā鍧椼€?)]
            [DefaultValue("<li><#= text #></li>")]
            
    public string TemplateText
            {
                
    get
                {
                    
    object o = ViewState["TemplateText"];
                    
    if (o == null)
                        
    return "<li><#= text #></li>";
                    
    return o.ToString();
                }
                
    set { ViewState["TemplateText"= value; }
            }

            [Category(
    "Behavior")]
            [Description(
    "闄勫姞鍙戦€佸弬鏁般€?)]
            [DefaultValue("")]
            
    public string PostParams
            {
                
    get
                {
                    
    object o = ViewState["PostParams"];
                    
    if (o == null)
                        
    return "";
                    
    return o.ToString();
                }
                
    set { ViewState["PostParams"= value; }
            }
            [Category(
    "Behavior")]
            [Description(
    "鏌ヨ鍏抽敭璇嶅弬鏁般€?)]
            [DefaultValue("searchKey")]
            
    public string KeyParams
            {
                
    get
                {
                    
    object o = ViewState["KeyParams"];
                    
    if (o == null)
                        
    return "searchKey";
                    
    return o.ToString();
                }
                
    set { ViewState["KeyParams"= value; }
            }
            [Category(
    "Behavior")]
            [Description(
    "鍒濆鍙傛暟銆?)]
            [DefaultValue("")]
            
    public string Text
            {
                
    get
                {
                    
    object o = ViewState["Text"];
                    
    if (o == null)
                        
    return "";
                    
    return o.ToString();
                }
                
    set { ViewState["Text"= value; }
            }

            [Category(
    "Behavior")]
            [Description(
    "璁剧疆鎴栬鍙?鍙銆?)]
            [DefaultValue(false)]
            
    public bool ReadOnly
            {
                
    get 
                {
                    
    object o = ViewState["ReadOnly"];
                    
    if (o == null)
                        
    return false;
                    
    return  Convert.ToBoolean(o);
                }
                
    set
                {
                    ViewState[
    "ReadOnly"= value;
                }
            }
            
            
    public string[] EmailAddress
            {
                
    get
                {
                    
    try
                    {
                        
    string tmps = Page.Request[this.ClientID];
                        System.Text.RegularExpressions.Regex reg 
    = new System.Text.RegularExpressions.Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
                        ArrayList results 
    = new ArrayList();
                        
    if (!string.IsNullOrEmpty(tmps))
                        {
                            
    foreach (string i in tmps.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
                            {
                                
    if (reg.IsMatch(i))
                                    results.Add(i);
                            }
                        }
                        
    else
                        {
                            
    return new string[0];
                        }
                        
    return Array.ConvertAll<objectstring>(results.ToArray(), delegate(object i) { return i.ToString(); });
                    }
                    
    catch
                    {
                        
    return new string[0];
                    }
                }
            }

            
    public string[] EmailNames
            {
                
    get
                {
                    
    try
                    {
                        
    string tmps = Page.Request[this.ClientID];
                        System.Text.RegularExpressions.Regex reg 
    = new System.Text.RegularExpressions.Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
                        ArrayList results 
    = new ArrayList();

                        
    if (!string.IsNullOrEmpty(tmps))
                        {
                            
    foreach (string i in tmps.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries))
                            {
                                
    if (!reg.IsMatch(i))
                                    results.Add(i);
                            }
                        }
                        
    else
                        {
                            
    return new string[0];
                        }
                        
    return Array.ConvertAll<objectstring>(results.ToArray(), delegate(object i) { return i.ToString(); });
                    }
                    
    catch
                    {
                        
    return new string[0];
                    }
                }
            }

            
    protected override void OnInit(EventArgs e)
            {
                
    base.OnInit(e);

                HtmlLink cssLink 
    = new HtmlLink();
                cssLink.Href 
    = Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.ui.autobox.css");
                cssLink.Attributes.Add(
    "rel""stylesheet");
                cssLink.Attributes.Add(
    "type""text/css");
                Page.Header.Controls.Add(cssLink);

                HtmlGenericControl Include1 
    = new HtmlGenericControl("script");
                Include1.Attributes.Add(
    "type""text/javascript");
                Include1.Attributes.Add(
    "src", Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.min.js"));
                Page.Header.Controls.Add(Include1);

                HtmlGenericControl Include5 
    = new HtmlGenericControl("script");
                Include5.Attributes.Add(
    "type""text/javascript");
                Include5.Attributes.Add(
    "src", Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.contextmenu.r2.js"));
                Page.Header.Controls.Add(Include5);

                HtmlGenericControl Include4 
    = new HtmlGenericControl("script");
                Include4.Attributes.Add(
    "type""text/javascript");
                Include4.Attributes.Add(
    "src", Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.templating.js"));
                Page.Header.Controls.Add(Include4);

                HtmlGenericControl Include2 
    = new HtmlGenericControl("script");
                Include2.Attributes.Add(
    "type""text/javascript");
                Include2.Attributes.Add(
    "src", Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.ui.autobox.js"));
                Page.Header.Controls.Add(Include2);

                HtmlGenericControl Include3 
    = new HtmlGenericControl("script");
                Include3.Attributes.Add(
    "type""text/javascript");
                Include3.Attributes.Add(
    "src", Page.ClientScript.GetWebResourceUrl(this.GetType(), "Framework.Library.Web.WebControl.jquery.ui.autobox.ext.js"));
                Page.Header.Controls.Add(Include3);
            }


            
    protected override void OnLoad(EventArgs e)
            {
                
    base.OnLoad(e);

                System.Text.StringBuilder sb 
    = new StringBuilder();
                
    foreach(string mt in this.Text.Split(";".ToCharArray(),  StringSplitOptions.RemoveEmptyEntries))
                {
                    sb.AppendFormat(
    "{0}autobox[0].addBox('{1}');"this.ClientID, mt);
                }

                
    string initScript = @" $(function() {{var {0}autobox = $('input.{0}').autobox({{
            ajax: '{1}',
            //valueObj: '{2}',
            match: {3},
            insertText: {4},
            templateText: '{5}',
            postParams:'{6}',
            keyName:'{7}',
            readyOnly: {8}
          }});if ($('#{2}')) $('#{2}').val(''); {9} }});
    ";
                initScript 
    = string.Format(initScript, this.ClientID,
                    
    this.AjaxUrl,
                    
    "",//this.TagObjectId,
                    this.Match,
                    
    this.InsertText,
                    
    this.TemplateText,
                    
    this.PostParams,
                    
    this.KeyParams,
                    (
    this.ReadOnly?"true":"false"),
                    sb.ToString()
                    );

                Page.ClientScript.RegisterStartupScript(
    this.GetType(), this.ClientID, initScript, true);

                Page.ClientScript.RegisterStartupScript(
    this.GetType(), "_contentMenu_""<div class='contextMenu' id='emailautocomplete_contentMenu'><ul><li id='open'>灞曞紑</li></ul></div>"false);
                

                
    //Page.RegisterHiddenField(this.TagObjectId, "");
            }

            
    protected override void Render(HtmlTextWriter writer)
            {
                
    base.Render(writer);

                
    string html =@"<input type='hidden' name='{0}' id='{0}' class='{0}' />";
                html 
    = string.Format(html, this.ClientID);
                writer.Write(html);
            }


        }
    }

    下载:

     https://files.cnblogs.com/sjett/EmailAutocomplete.rar

  • 相关阅读:
    checkedListBox的具体用法
    pi
    从1.9G到64K
    世界编程大赛第一名程序
    SQLServer中导入/导出Excel的基本方法
    Android 内存优化测试
    android,内存优化详解
    Android解决大图片内存溢出
    Android有效解决加载大图片时内存溢出的问题
    android端读取本地图片出现OutOfMemoryException
  • 原文地址:https://www.cnblogs.com/sjett/p/2111297.html
Copyright © 2020-2023  润新知