示例#1
0
        public T GetElement <T>(string elementId) where T : ScriptElement
        {
            ScriptElement e = null;

            if (!_elementsCache.TryGetValue(elementId, out e))
            {
                lock (_elementsCache)
                {
                    if (!_elementsCache.TryGetValue(elementId, out e))
                    {
                        DTObject element = GetElementById(elementId);

                        if (element == null)
                        {
                            //没有找到输入项时,采用自由模式
                            element = DTObject.Create("{id,metadata:{}}");
                            element.SetValue("id", elementId);
                            _scriptHeader.AppendFormat("var {0} = $('#{0}');", elementId);
                        }
                        //if (element == null) throw new XamlException("没有找到编号为" + elementId + "的脚本元素");
                        e = ElementFactory.Create <T>(this, element) as T;
                        _elementsCache.Add(elementId, e);
                    }
                }
            }
            return((T)e);
        }
示例#2
0
 /// <summary>
 /// 获得视图的提交者
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <returns></returns>
 public T GetSender <T>() where T : ScriptElement
 {
     if (_sender == null)
     {
         if (_input == null)
         {
             throw new XamlException("视图没有提交者");
         }
         var sender = _input.GetObject("sender", null);//{sender:{},elements:[{id:'xxxx',metadata:xxxx}]}
         if (sender == null)
         {
             throw new XamlException("视图没有提交者");
         }
         _sender = ElementFactory.Create <T>(this, sender);
     }
     return(_sender as T);
 }