无法在Composite控件内实现UpdatePanel控件 [英] Can't implement UpdatePanel control inside Composite control

查看:69
本文介绍了无法在Composite控件内实现UpdatePanel控件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Composite控件中,放置了一个按钮.单击时将显示一个弹出窗口.在弹出窗口中,将有另一个按钮,当单击该按钮时,它将在TextBox中显示文本,等等.我可以显示弹出窗口,但是当在弹出窗口中单击该按钮时,弹出窗口消失了.同样,当我单击第一个按钮时,不显示弹出窗口.所以我想用UpdatePanel包围弹出窗口中的控件,这样就不会发生回发问题.但实际上我搞砸了.到目前为止,无法在Composite控件中实现UpdatePanel.确实,我使用Google太多了.请为我提供完整代码的解决方案.

In my Composite control I placed a button. Which when clicked, a popup will be shown. In the popup there will be another button which when clicked will show text in TextBox and more... I can show popup but when the button is clicked in the popup, the popup vanishes away. Again when I click the first button, the popup is not shown. So I want to surround controls in the popup with UpdatePanel so that no postback problem occurs. But truly I messed up. Can''t implement UpdatePanel in Composite control till now. Truly I used Google too much. Please suggest me a solution with full codes.

public class MyCompositeControl : CompositeControl, INamingContainer

    {
        
        
        private ImageButton cmdResult = new ImageButton();
        
        private LiteralControl first = new LiteralControl(string.Format("<div id=\"div_to_popup\" style=\"display:none; background-color:White;color:Black;width:430px;height:300px;\"><div id=\"div_to_popup2\" style=\"border:3px solid Gray;height:100%;\">"));

        private TextBox text1 = new TextBox();
        private TextBox text2 = new TextBox();
        private DropDownList ddlist1 = new DropDownList();        
        private Label lblResult = new Label();
        private LiteralControl lc = new LiteralControl("<br>");
        private Button Button = new Button();
        LiteralControl sec = new LiteralControl("</div>");
                    
        [Bindable(true)]
        [Category("Appearance")]
        [DefaultValue("")]
        [Localizable(true)]
        public string Text
        {
            get
            {
                String s = (String)ViewState["Text"];
                return ((s == null) ? "[" + this.ID + "]" : s);
            }

            set
            {
                ViewState["Text"] = value;
            }
        }       
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);
            
            //ScriptManager sm = ScriptManager.GetCurrent(Page);

            Button.Text = "kick button";                               

            text1.Height = Unit.Pixel(25);
            text1.Width = Unit.Pixel(70);
            text1.Text = "0";

            text2.Height = Unit.Pixel(25);
            text2.Width = Unit.Pixel(70);
            text2.Text = "0";

            ddlist1.Height = Unit.Pixel(25);
            ddlist1.Width = Unit.Pixel(40);

            ddlist1.Items.Add("+");
            ddlist1.Items.Add("-");
            ddlist1.Items.Add("*");
            ddlist1.Items.Add("/");

            cmdResult.Height = Unit.Pixel(25);
            cmdResult.Width = Unit.Pixel(50);
            cmdResult.AlternateText = "Result";

            lblResult.Height = Unit.Pixel(25);
            lblResult.Width = Unit.Pixel(200);

            DotNetNuke.Entities.Modules.PortalModuleBase u = new PortalModuleBase();
            lblResult.Text = "result";// u.UserId.ToString(); ;

            
            Button.Click += new EventHandler(Button_Click);
            cmdResult.Click += new ImageClickEventHandler(cmdResult_Click);

            Controller control = new Controller();
            DateTime dt = DateTime.Now.AddHours(-24);
            
        }        

        protected override void OnPreRender(EventArgs e)
        {           
            StringBuilder sb = new StringBuilder();           
            sb.AppendFormat("<link rel=\"stylesheet\" href=\"general.css \" type=\"text/css\"  />{0}", "\r\n");           
            sb.Append("<script type=\"text/javascript\">");
            sb.Append("(function (a) { a.fn.bPopup = function (h, j) { function s() { b.css({ left: !o.follow[1] && k ? d : c.scrollLeft() + d, position: \"absolute\", top: !o.follow[0] && l ? e : c.scrollTop() + e, \"z-index\": o.zIndex }).appendTo(o.appendTo).hide(1, function () { a.isFunction(o.onOpen) && o.onOpen.call(b); if (o.loadUrl != null) switch (o.contentContainer = o.contentContainer == null ? b : a(o.contentContainer), o.content) { case \"iframe\": a(''<iframe scrolling=\"no\" frameborder=\"0\"></iframe>'').attr(\"src\", o.loadUrl).appendTo(o.contentContainer); break; default: o.contentContainer.load(o.loadUrl) } }).fadeIn(o.fadeSpeed, function () { a.isFunction(j) && j() }); t() } function i() { o.modal && a(\"#bModal\").fadeOut(o.fadeSpeed, function () { a(\"#bModal\").remove() }); b.fadeOut(o.fadeSpeed, function () { o.loadUrl != null && o.contentContainer.empty() }); o.scrollBar || a(\"html\").css(\"overflow\", \"auto\"); a(\".\" + o.closeClass).die(\"click\"); a(\"#bModal\").die(\"click\"); c.unbind(\"keydown.bPopup\"); f.unbind(\".bPopup\"); b.data(\"bPopup\", null); a.isFunction(o.onClose) && setTimeout(function () { o.onClose.call(b) }, o.fadeSpeed); return !1 } function u() { if (n || v) { var a = [c.height(), c.width()]; return { \"background-color\": o.modalColor, height: a[0], left: m(), opacity: 0, position: \"absolute\", top: 0, width: a[1], \"z-index\": o.zIndex - 1} } else return { \"background-color\": o.modalColor, height: \"100%\", left: 0, opacity: 0, position: \"fixed\", top: 0, width: \"100%\", \"z-index\": o.zIndex - 1} } function t() { a(\".\" + o.closeClass).live(\"click\", i); o.modalClose && a(\"#bModal\").live(\"click\", i).css(\"cursor\", \"pointer\"); (o.follow[0] || o.follow[1]) && f.bind(\"scroll.bPopup\", function () { b.stop().animate({ left: o.follow[1] ? c.scrollLeft() + d : d, top: o.follow[0] ? c.scrollTop() + e : e }, o.followSpeed) }).bind(\"resize.bPopup\", function () { if (o.modal && n) { var a = [c.height(), c.width()]; p.css({ height: a[0], width: a[1], left: m() }) } g = q(b, o.amsl); o.follow[0] && (e = l ? e : c.scrollTop() + g[0]); o.follow[1] && (d = k ? d : c.scrollLeft() + g[1]); b.stop().animate({ left: d, top: e }, o.followSpeed) }); o.escClose && c.bind(\"keydown.bPopup\", function (a) { a.which == 27 && i() }) } function m() { return f.width() < a(\"body\").width() ? 0 : (a(\"body\").width() - f.width()) / 2 } function q(a, b) { var c = (f.height() - a.outerHeight(!0)) / 2 - b, d = (f.width() - a.outerWidth(!0)) / 2 + m(); return [c < 20 ? 20 : c, d] } a.isFunction(h) && (j = h, h = null); o = a.extend({}, a.fn.bPopup.defaults, h); o.scrollBar || a(\"html\").css(\"overflow\", \"hidden\"); var b = a(this), p = a(''<div id=\"bModal\"></div>''), c = a(document), f = a(window), g = q(b, o.amsl), l = o.position[0] != \"auto\", k = o.position[1] != \"auto\", e = l ? o.position[0] : g[0], d = k ? o.position[1] : g[1], r = navigator.userAgent.toLowerCase(), v = r.indexOf(\"iphone\") != -1, n = /msie 6/i.test(r) && typeof window.XMLHttpRequest != \"object\"; this.close = function () { o = b.data(\"bPopup\"); i() }; return this.each(function () { b.data(\"bPopup\") || (o.modal && p.css(u()).appendTo(o.appendTo).animate({ opacity: o.opacity }, o.fadeSpeed), b.data(\"bPopup\", o), s()) }) }; a.fn.bPopup.defaults = { amsl: 50, appendTo: \"body\", closeClass: \"bClose\", content: \"ajax\", contentContainer: null, escClose: !0, fadeSpeed: 250, follow: [!0, !0], followSpeed: 500, loadUrl: null, modal: !0, modalClose: !0, modalColor: \"#000\", onClose: null, onOpen: null, opacity: 0.7, position: [\"auto\", \"auto\"], scrollBar: !0, zIndex: 9999} })(jQuery);");
            sb.Append("</script>\r\n");
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Cp_Detail_Script", sb.ToString());            
        }
        /// <summary>
        /// This CreateChildControls should be used to write code for
        /// creating our composite controls
        /// </summary>
        protected override void CreateChildControls()
        {
            Controls.Add(cmdResult);
            Controls.Add(first);
            Controls.Add(text1);
            Controls.Add(ddlist1);
            Controls.Add(text2);
            Controls.Add(lc);
            Controls.Add(lblResult);
            Controls.Add(Button);
            Controls.Add(sec);

        }        
        private string getjQueryCode(string jsCodetoRun)
        {
            StringBuilder sb = new StringBuilder();
             sb.AppendLine("function pageLoad() {");            
            sb.AppendLine(jsCodetoRun);
            sb.AppendLine(" };");            
            return sb.ToString();
        }
        private void runjQueryCode(string jsCodetoRun)
        {

            ScriptManager requestSM = ScriptManager.GetCurrent(Page);
             if (requestSM != null && requestSM.IsInAsyncPostBack)
             {
            Page.ClientScript.RegisterClientScriptBlock(typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(jsCodetoRun), true);                
               // ScriptManager.RegisterStartupScript(this, typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(jsCodetoRun), true);
             }
             else
             {
            Page.ClientScript.RegisterStartupScript(typeof(Page), Guid.NewGuid().ToString(), getjQueryCode(jsCodetoRun), true);
             }
        }
        private void cmdResult_Click(object sender, EventArgs e)
        {
            Label lblResult = (Label)Controls[6];
            try
            {

                TextBox text1 = (TextBox)Controls[2];
                DropDownList ddBox = (DropDownList)Controls[3];
                TextBox text2 = (TextBox)Controls[4];

                this.EnsureChildControls();
                switch (ddBox.SelectedValue)//switch ( ddBox.SelectedValue)
                {

                    case "+":
                        lblResult.Text = Convert.ToString(Convert.ToInt32(text1.Text) + Convert.ToInt32(text2.Text));
                        break;

                    case "-":
                        lblResult.Text = Convert.ToString(Convert.ToInt32(text1.Text) - Convert.ToInt32(text2.Text));
                        break;

                    case "*":
                        lblResult.Text = Convert.ToString(Convert.ToInt32(text1.Text) * Convert.ToInt32(text2.Text));
                        break;

                    case "/":
                        lblResult.Text = Convert.ToString(Convert.ToInt32(text1.Text) / Convert.ToInt32(text2.Text));
                        break;

                }

                runjQueryCode("$(''#div_to_popup'').bPopup({ appendTo: ''form'', zIndex: 2, closeClass: ''clickclose'',modalColor: ''White'', modalClose: false, scrollBar: true });return false;");
                
            }
            catch (Exception eVal)
            {
                lblResult.Text = eVal.ToString();
            }

        }
        protected override void RenderContents(HtmlTextWriter writer)
        {
           // up.RenderControl(writer);
            cmdResult.RenderControl(writer);
            first.RenderControl(writer);
            text1.RenderControl(writer);
            ddlist1.RenderControl(writer);
            text2.RenderControl(writer);

            lc.RenderControl(writer);
            lblResult.RenderControl(writer);
            Button.RenderControl(writer);
            sec.RenderControl(writer);
        }

        private void  Button_Click(object sender, EventArgs e)
        {
            TextBox text1 = (TextBox)Controls[2];           
            text1.Text = "testsucces";           
        }
    }

推荐答案

(``#div_to_popup'').bPopup({appendTo:``form'',zIndex:2,closeClass:``clickclose' ',modalColor:``White'',modalClose:false,scrollBar:true});返回false;); } 捕获(异常eVal) { lblResult.Text = eVal.ToString(); } } 受保护的重写void RenderContents(HtmlTextWriter writer) { //up.RenderControl(writer); cmdResult.RenderControl(writer); first.RenderControl(writer); text1.RenderControl(writer); ddlist1.RenderControl(writer); text2.RenderControl(writer); lc.RenderControl(writer); lblResult.RenderControl(writer); Button.RenderControl(writer); sec.RenderControl(writer); } 私有void Button_Click(对象发送者,EventArgs e) { TextBox text1 =(TextBox)Controls [2]; text1.Text ="testsucces"; } }
(''#div_to_popup'').bPopup({ appendTo: ''form'', zIndex: 2, closeClass: ''clickclose'',modalColor: ''White'', modalClose: false, scrollBar: true });return false;"); } catch (Exception eVal) { lblResult.Text = eVal.ToString(); } } protected override void RenderContents(HtmlTextWriter writer) { // up.RenderControl(writer); cmdResult.RenderControl(writer); first.RenderControl(writer); text1.RenderControl(writer); ddlist1.RenderControl(writer); text2.RenderControl(writer); lc.RenderControl(writer); lblResult.RenderControl(writer); Button.RenderControl(writer); sec.RenderControl(writer); } private void Button_Click(object sender, EventArgs e) { TextBox text1 = (TextBox)Controls[2]; text1.Text = "testsucces"; } }


这篇关于无法在Composite控件内实现UpdatePanel控件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆