[部分解决]使用GridView>>之类的嵌套标签创建自定义控件.列>>分页 [英] [Partially Solved] Create custom control with nested tag like GridView >> Columns >> Paging

查看:81
本文介绍了[部分解决]使用GridView>>之类的嵌套标签创建自定义控件.列>>分页的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨 专家,
我想创建一个具有以下功能的自定义控件,并且此功能已成功创建但是我想用Thumbnail和Popup标签将Album分开:

Hi Expert,
I would like to create a custom control with following feature and this is successfully created but i like to segregate Album with Thumbnail and Popup tag:

<fv:Album Runat="Server" Id="WeddingAlbum" Width="600" Height="600" SkinColor="SkyBlue" AllowedFileExtensions="jpg|png|jpeg|gif" MessageDelay="6000"

SavePageUrl="saveupload.aspx" RemovePageUrl="removeupload.aspx"

ThumbnailHeight="150" Thumbnailwidth="150" ThumbnailFadeIn="slow" ThumbnailFadeOut="slow" ThumbnailShowDelete="true"

PopupView="true" PopupViewType="All" PopupOverlayShow="true" PopupTransitionIn="elastic" PopupTransitionOut="elastic"

</fv:Album>



但是我想将带有Thumbnail和Popup标签的Album隔离开.看起来像



but i would like to segregate Album with Thumbnail and Popup tag. it look like

<fv:Album Runat="Server" Id="WeddingAlbum" Width="600" Height="600" SkinColor="SkyBlue" AllowedFileExtensions="jpg|png|jpeg|gif" MessageDelay="6000" SavePageUrl="saveupload.aspx" RemovePageUrl="removeupload.aspx">
    <fv:Thumbnail Height="150" width="150" FadeIn="slow" FadeOut="slow" ShowDelete="true" />
    <fv:Popup View="true" ViewType="All" OverlayShow="true" TransitionIn="elastic" TransitionOut="elastic"/>
</fv:Album>


有人能告诉我如何实现上述功能吗?

有关更多说明,请参见以下示例:


can any body tell me how can i achieve the above functionality?

For more clarification ,please see following Example:

<asp:GridView ID="productGridView" Runat="server" DataSourceID="productsDataSource"

            <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle>
            <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center"></PagerStyle>
            <HeaderStyle ForeColor="White" BackColor="#A55129"></HeaderStyle>
</asp:GridView>



提前致谢!
Imdadhusen



Thanks in advance!
Imdadhusen

推荐答案

嗨 我已经使用以下代码完成了上述要求:
现在,我面临的另一个问题是缩略图",弹出窗口在每个相册"标签上只能允许一次.
Hi I have done above requirement using following code:
Now i am facing another problem is Thumbnail and Popup should allow only once at every Album tag.
<fv:Thumbnail Height="150" width="150" FadeIn="slow" FadeOut="slow" ShowDelete="true" />
    <fv:Popup View="true" ViewType="All" OverlayShow="true" TransitionIn="elastic" TransitionOut="elastic"/>



嵌套标签的解决方案
Album.cs



Solution for nested tag
Album.cs

namespace Imdadhusen.Controls.Web
{
    [DefaultProperty("Text")]
    [ToolboxData("<{0}:Album runat=\"server\" />")]
    [ToolboxBitmap(typeof(Album), "Album.bmp")]
    public class Album : WebControl, IScriptControl
    {
        #region "Popup Properties"
        private Popup _popup = new Popup();
        //PersistenceMode.InnerProperty: Specifies that the property persists in
        //the ASP.NET server control as a nested tag. 
        //DesignerSerializationVisibility.Content: Specifies that a visual
        //designer serializes the contents of this property instead of the 
        //property itself. 
        [DefaultValue("")]
        [Category("Custom")]
        [PersistenceMode(PersistenceMode.InnerProperty)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Popup Popup
        {
            get { return _popup; }
            set { _popup = value; }
        }
        #endregion

        #region "Popup Properties"
        private Thumbnail _thumbnail = new Thumbnail();
        [DefaultValue("")]
        [Category("Custom")]
        [PersistenceMode(PersistenceMode.InnerProperty)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public Thumbnail Thumbnail
        {
            get { return _thumbnail; }
            set { _thumbnail = value; }
        }
        #endregion

        #region "Control Properties"
        public string UploadButtonID
        {
            get { return this.ViewState["UploadButtonID"] == null ? string.Empty : (string)this.ViewState["UploadButtonID"]; }
            set { this.ViewState["UploadButtonID"] = value; }
        }
        /// <summary>
        /// Location of the server-side upload script
        /// </summary>
        public string Action
        {
            get { return this.ViewState["Action"] == null ? string.Empty : (string)this.ViewState["Action"]; }
            set { this.ViewState["Action"] = value; }
        }
        /// <summary>
        /// Additional data to send
        /// </summary>
        public string ExtraData
        {
            get { return this.ViewState["ExtraData"] == null ? string.Empty : (string)this.ViewState["ExtraData"]; }
            set { this.ViewState["ExtraData"] = value; }
        }
        /// <summary>
        /// Callback to fire before file is uploaded
        /// You can return false to cancel upload
        /// </summary>
        public string OnSubmitFunction
        {
            get { return this.ViewState["OnSubmitFunction"] == null ? string.Empty : (string)this.ViewState["OnSubmitFunction"]; }
            set { this.ViewState["OnSubmitFunction"] = value; }
        }
        /// <summary>
        /// Submit file as soon as it's selected
        /// </summary>
        public bool AutoSubmit
        {
            get { return this.ViewState["AutoSubmit"] == null ? true : (bool)this.ViewState["AutoSubmit"]; }
            set { this.ViewState["AutoSubmit"] = value; }
        }
        /// <summary>
        /// The type of data that you're expecting back from the server.
        /// Html and xml are detected automatically.
        /// Only useful when you are using json data as a response.
        /// Set to "json" in that case.
        /// </summary>
        public string ResponseType
        {
            get { return this.ViewState["ResponseType"] == null ? string.Empty : (string)this.ViewState["ResponseType"]; }
            set { this.ViewState["ResponseType"] = value; }
        }
        // When user selects a file, useful with autoSubmit disabled			
        public string OnChangeFunction
        {
            get { return this.ViewState["OnChangeFunction"] == null ? string.Empty : (string)this.ViewState["OnChangeFunction"]; }
            set { this.ViewState["OnChangeFunction"] = value; }
        }
        /// <summary>
        /// Fired when file upload is completed
        /// WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
        /// </summary>
        public string OnCompleteFunction
        {
            get { return this.ViewState["OnCompleteFunction"] == null ? string.Empty : (string)this.ViewState["OnCompleteFunction"]; }
            set { this.ViewState["OnCompleteFunction"] = value; }
        }
        #endregion

        #region "Page Events"
        protected override void OnPreRender(EventArgs e)
        {
            if (!this.DesignMode)
            {
                //test for the existence of a ScriptManager  
                ScriptManager sMgr = ScriptManager.GetCurrent(Page);

                if (sMgr == null)
                    throw new HttpException(
                       "A ScriptManager control must exist on the page.");

                sMgr.RegisterScriptControl(this);
            }
            base.OnPreRender(e);
        }
        protected override void Render(HtmlTextWriter output)
        {
            Control btnUpload = this.NamingContainer.FindControl(this.UploadButtonID);
            if (btnUpload == null) throw new HttpException("A UploadButtonID must point to an existing control on the page.");

            StringBuilder startupscript = new StringBuilder();
            startupscript.AppendLine("


().ready(function(){" ); startupscript.AppendLine("
().ready(function () {"); startupscript.AppendLine("


(function(){" ); startupscript.AppendFormat("
(function () {"); startupscript.AppendFormat(" var btnUpload =


这篇关于[部分解决]使用GridView&gt;&gt;之类的嵌套标签创建自定义控件.列&gt;&gt;分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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