FineUI 官方论坛

标题: FileUpload不响应TextChanged临时解决方案。 [打印本页]

作者: 辉月    时间: 2012-10-19 20:16
标题: FileUpload不响应TextChanged临时解决方案。
原因:FileUpload绑定的change事件不会执行到,而应绑定fileselected事件。

解决方案:
修改 FileUpload.cs (红色为添加的代码)

        protected override void OnFirstPreRender()
        {
            base.OnFirstPreRender();


            AddStartupAbsoluteScript("X.form_upload_file=true;");


            if (!String.IsNullOrEmpty(ButtonText))
            {
                OB.AddProperty("buttonText", ButtonText);
            }

            if (ButtonOnly)
            {
                OB.AddProperty("buttonOnly", true);
            }

            if (AutoPostBack)
            {
                OB.Listeners.AddProperty("fileselected", JsHelper.GetFunction(GetPostBackEventReference()), true);
            }

            string resolvedIconUrl = IconHelper.GetResolvedIconUrl(ButtonIcon, ButtonIconUrl);
            if (!String.IsNullOrEmpty(resolvedIconUrl))
            {
                OptionBuilder buttonOB = new OptionBuilder();
                buttonOB.AddProperty("cls", " x-btn-text-icon");
                buttonOB.AddProperty("icon", resolvedIconUrl);

                OB.AddProperty("buttonCfg", buttonOB);
            }
            //if (TextMode != TextMode.Text)
            //{
            //    OB.AddProperty("inputType", TextModeHelper.GetName(TextMode));
            //}

            string jsContent = String.Format("var {0}=new Ext.ux.form.FileUploadField({1});", XID, OB.ToString());
            AddStartupScript(jsContent);
        }


        #region IPostBackDataHandler Members


        /// <summary>
        /// 处理回发数据
        /// </summary>
        /// <param name="postDataKey">回发数据键</param>
        /// <param name="postCollection">回发数据集</param>
        /// <returns>回发数据是否改变</returns>
        public override bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
        {
            if (Enabled)
            {
                return true;
            }
            return false;
        }


        /// <summary>
        /// 触发回发数据改变事件
        /// </summary>
        public override void RaisePostDataChangedEvent()
        {
            OnTextChanged(EventArgs.Empty);
        }


        #endregion


作者: Jyin    时间: 2012-11-9 07:02
同学 有点没看明白 能解释一下吗  protected override void OnFirstPreRender()重新这个为哪办

作者: Jyin    时间: 2012-11-9 07:06
能解释一下吗
作者: sanshi    时间: 2012-11-25 12:03
多谢,FineUI v3.2.1会按照这个思路增加 FileSelected 事件。

-为FileUpload控件增加OnFileSelected事件(启用AutoPostBack时有效)(辉月)。




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4