1: public class AllBrowsersHtmlListField : RadHtmlListField
2: {
3: private void checkForFirefox()
4: {
5: HttpRequest request = HttpContext.Current.Request;
6: HttpBrowserCapabilities browser = request.Browser;
7: if ((browser.Browser.ToLower() == "firefox"))
8: {
9: ReflectionHelper.SetFieldValue(this, "_browserCapabilitiesRetrieved", true);
10: ReflectionHelper.SetFieldValue(this, "_isSupportedBrowser", true);
11: }
12: }
13:
14: protected override void OnLoad(EventArgs e)
15: {
16: this.checkForFirefox();
17:
18: base.ToolsFile = base.SetWebSpecificConfiguration(base.RadControlsDir +
19: "Editor/ListToolsFile.xml");
20: base.ConfigFile = base.SetWebSpecificConfiguration(base.RadControlsDir +
21: "Editor/ListConfigFile.xml");
22: //base.OnLoad(e);
23: this.NewOnLoad(e);
24: //if (this.ShowEditorOnPage())
25: if (this.NewShowEditorOnPage())
26: {
27: //this.SetSPField();
28: ReflectionHelper.CallMethod(this, "SetSPField");
29:
30: var htmlBox = ReflectionHelper.GetFieldValue(this, "htmlBox")
31: as TextBox;
32: ((HtmlControl)htmlBox.Parent).Style.Add("display", "none");
33:
34: var baseField = ReflectionHelper.GetFieldValue(this, "baseField")
35: as SPFieldMultiLineText;
36: if (baseField.NumberOfLines > 6)
37: {
38: this.Height = (baseField.NumberOfLines * this.FontSizeCoef) * 2;
39: }
40:
41: var rtField = ReflectionHelper.GetFieldValue(this, "rtField")
42: as RichTextField;
43: if (rtField.DisplaySize > 0x4b)
44: {
45: this.Width = rtField.DisplaySize * this.FontSizeCoef;
46: }
47: if (baseField.RichTextMode == SPRichTextMode.Compatible)
48: {
49: base.Toolbars.Remove(base.Toolbars["EnhancedToolbar"]);
50: base.ShowHtmlMode = false;
51: }
52: //this.RegisterSubmitScript();
53: ReflectionHelper.CallMethod(this, "RegisterSubmitScript");
54: this.Page.PreRenderComplete += NewPreRenderComplete;
55: }
56: else
57: {
58: this.Visible = false;
59: }
60: }
61:
62: private void NewOnLoad(EventArgs eventArgs)
63: {
64: BindingFlags bf = 0 | BindingFlags.Instance | BindingFlags.Static |
65: BindingFlags.Public | BindingFlags.NonPublic;
66: MethodInfo mi = this.GetType().BaseType.BaseType.FindMembers(MemberTypes.Method,
67: bf, Type.FilterName, "OnLoad")[0] as MethodInfo;
68: DynamicMethod dm = new DynamicMethod("BaseBaseOnLoad", null,
69: new Type[] { this.GetType(), typeof(EventArgs) }, this.GetType());
70: ILGenerator gen = dm.GetILGenerator();
71: gen.Emit(OpCodes.Ldarg_0);
72: gen.Emit(OpCodes.Ldarg_1);
73: gen.Emit(OpCodes.Call, mi);
74: gen.Emit(OpCodes.Ret);
75:
76: var BaseBaseOnLoad = (Action<AllBrowsersHtmlListField, EventArgs>)
77: dm.CreateDelegate(typeof(Action<AllBrowsersHtmlListField, EventArgs>));
78: BaseBaseOnLoad(this, eventArgs);
79: }
80:
81: private bool NewShowEditorOnPage()
82: {
83: return true;
84: }
85:
86: protected void NewPreRenderComplete(object sender, EventArgs e)
87: {
88: ReflectionHelper.CallMethod(this, "Page_PreRenderComplete", sender, e);
89: }
90: }