using BWP.B3Frameworks.Attributes; using BWP.B3Sale.BO; using BWP.Web.Utils; using Forks.EnterpriseServices.DataForm; using Forks.Utils.TypeDescs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using TSingSoft.WebControls2; using TSingSoft.WebPluginFramework; namespace BWP.Web.Pages { public class YunKenDFEntityLink : DFControl, IDFFieldEditor { public YunKenDFEntityLink() : base() { } public void InitEntityType(Type type) { mEntityType = type; } Type mEntityType; string mLinkIDField; public YunKenDFEntityLink(Type entityType, string linkIDField ) { mEntityType = entityType; mLinkIDField = linkIDField; } internal string Text { get { return (string)ViewState["Text"]; } set { ViewState["Text"] = value; } } public void ApplyValueToUI(object value) { Text = string.Empty; if (value == null) { return; } var str = value as string; if (string.IsNullOrEmpty(str)) { return; } DFInfo info = DFField.DFInfo as DFInfo; if (info == null) { return; } IDotNetTypeDesc type = info.DFClass as IDotNetTypeDesc; if (type == null) { return; } //+info.DFClass { BWP.B3Sale.BO.SaleOutStore} //Forks.Utils.TypeDescs.ITypeDesc { Forks.Utils.TypeDescs.DotNetTypeDesc} var id = WebBLUtil.GetDmoProperty(type.Type, mLinkIDField, new Tuple(DFField.Name, str)); if (id == null) { return; } var url = EditUrlAttribute.GetUrl(mEntityType); if (string.IsNullOrEmpty(url)) { throw new Exception(string.Format("未能得到对象{0}的编辑页面", DFInfo.Get(mEntityType).LogicName)); } url = AspUtil.AddTimeStampToUrl(WpfPageUrl.ToGlobal(url)); url = AspUtil.AddParamToUrl(url, "ID", id.ToString()); Text = string.Format("{1}", url, value); } public object GetValueFromUI() { return null; } public bool Readonly { get { return true; } set { } } public void ApplyToUI(object dfObject) { ApplyValueToUI(DFField.GetValue(dfObject)); } public void GetFromUI(object dfObject) { } public void ValidInput() { } protected override void Render(System.Web.UI.HtmlTextWriter writer) { writer.Write(Text); } } }