0

我有一种方法可以更改我网站上控件的文本。
当用户加载页面时,这些更改应该是可见的。
但是在下一次回发之后,这些变化首先是可见的。

我试图在Page_PreInit,Page_Init此处Page_PreLoad描述的所有其他方法中调用它。 但他们都没有工作。

一些代码:
具有方法的类:(部分)

    namespace MyNamespace {
        public class ControlTextCorrection {

            Page _page;

            public ControlTextCorrection(Page page) {
                _page = page;
            }

            public void Correct() {
                HtmlEncodeControls(_page);
            }

            private void HtmlEncodeControls(Page page) {
                Control control = (Control)page;
                HtmlEncodeControls(control);
            }

            private void HtmlEncodeControls(Control parentControl) {
                if (!parentControl.HasControls()) {
                    return;
                }
                foreach (Control control in parentControl.Controls) {
                    if (control.HasControls()) {
                        HtmlEncodeControls(control);
                    }
                    if (control is Label) {
                        Label label = (Label)control;
                        label.Text = HtmlTextCorrection(label.Text);
                    }
                    else if (control is CheckBox) {
                        CheckBox checkBox = (CheckBox)control;
                        checkBox.Text = HtmlTextCorrection(checkBox.Text);
                    }
                    //Correction for more controls...
                }
            }

            protected string HtmlTextCorrection(string text) {
                bool encode = true;
                while (encode) {
                    string newText = _page.Server.HtmlDecode(text);
                    if (newText == text) {
                        encode = false;
                    }
                    text = newText;
                }
                text = _page.Server.HtmlEncode(text);
                return text;
            }
        }
    }  

调用方法示例:

    protected void Page_PreLoad(object sender, EventArgs e) {
        ControlTextCorrection correction = new ControlTextCorrection(this.Page);
        correction.Correct();
    }

那么,我应该在哪里(何时)调用它,以便在看到网站的第一眼就可以看到更改?

4

0 回答 0