/// <summary> /// 使页面上指定选择器的元素成为自定义插件. /// </summary> /// <param name="selector">用于指定页面上元素的选择器.</param> /// <param name="setting">自定义插件设置, 比如: TimerSetting, RepeaterSetting 等.</param> /// <param name="variableName">如果不为空, 则生成同名的 javascript 脚本变量.</param> public void Plusin(string selector, PlusinSetting setting, string variableName = null) { if (string.IsNullOrEmpty(selector)) { throw new ArgumentNullException("selector", "选择器不能为空"); } if (null == setting) { throw new ArgumentNullException("setting", "Plusin 设置不能为空"); } string key = string.Format("__js{0}", setting.PlusinType); if (!ScriptHelper.IsBuilt(new RazorScriptHolder(this.page), key)) { ScriptHelper script = new ScriptHelper( ); //foreach //script.AppendCode ( setting.GetDependentScripts ( ) ); script.Build(new RazorScriptHolder(this.page), key, ScriptBuildOption.Startup); } this.code += "$(function(){" + (string.IsNullOrEmpty(variableName) ? string.Empty : ("window['" + variableName + "'] = ")) + new JQueryUI(selector).Plusin(setting).Code + "});"; }
/// <summary> /// 使 jQuery 中包含的页面元素转变为 je 中的自定义插件. /// </summary> /// <param name="setting">自定义插件相关设置, 为 TimerSetting, RepeaterSetting 等.</param> /// <returns>更新后的 JQueryUI.</returns> public JQueryUI Plusin(PlusinSetting setting) { // 这个方法引用了命名空间 plusin 里面的类, 可以新建一个 JQueryUIPlusin 类, 再将 Plusin 放到 JQueryUIPlusin 中. if (null == setting || setting.PlusinType == PlusinType.custom) { return(this); } setting.Recombine( ); return(this.Execute("__" + setting.PlusinType.ToString( ), MakeOptionExpression(setting.SettingHelper.CreateOptions( ))) as JQueryUI); }