welcome to XRM blog

Keep in touch with latest CRM/ERP articles

To remain competitive your organisation must be efficient across the business process spectrum. To do so you need to take sound decisions based on a balance between the cost and risk. To do so you will be heavily dependent on your content management in itself needs...

image
Blog

DNN Grid Read more button in a column

By xrmlabs webmaster on 3/21/2013

DNN Grid Read more button in a column

 Suppose if you want to display the data in a grid to a particular column with a certain limit of characters and put a button for reading more characters .This can be achieved by this  here is the aspx file and code behind file . This example demonstrates the characters limit of 40 characters in a column after that user can read more characters by pressing read more button.  

View.ascx

<%@ Control language="C#" Inherits="DotNetNuke.Modules.Readmore.View" AutoEventWireup="false"  Codebehind="View.ascx.cs" %>
<%@ Register TagPrefix="dnn" TagName="Label" Src="~/controls/labelcontrol.ascx" %>
 
<div class="dnnForm dnnSecurityRoles">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" width="687px">
        <ContentTemplate>
            <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                <ProgressTemplate>
                    Please Wait.....
                ProgressTemplate>
            asp:UpdateProgress>
            <asp:GridView ID="grdbookdetail" runat="server" AutoGenerateColumns="False" CssClass="dnnGrid"
                EmptyDataText="--- No Record found ---" EnableModelValidation="True" ShowHeaderWhenEmpty="True" >
                <HeaderStyle CssClass="dnnGridHeader" VerticalAlign="Top" BackColor="#009933" ForeColor="White" />
                <RowStyle CssClass="dnnGridItem" HorizontalAlign="Left" />
                <AlternatingRowStyle CssClass="dnnGridAltItem" BackColor="#FFCC00" />
                <EditRowStyle CssClass="dnnFormInput" />
                <SelectedRowStyle CssClass="dnnFormError" />
                <FooterStyle CssClass="dnnGridFooter" />
                <PagerStyle CssClass="dnnGridPager" />
 
                <Columns>
 
                    <asp:BoundField HeaderText="BookName" DataField="BookName" />
                     
                     <asp:BoundField HeaderText="Author" DataField="Author" />
 
                      <asp:BoundField HeaderText="Publisher" DataField="Publisher" />
                   
                    <asp:TemplateField HeaderText="Description">
                        <ItemTemplate>
                            <asp:Label ID="lblDescription" runat="server" Text='<%# Limit(Eval("Description"),40) %>'
                                ToolTip='<%# Eval("Description") %>'>     
                            asp:Label>
                            <asp:LinkButton ID="ReadMoreLinkButton" runat="server" Text="Read More"
                                OnClick="ReadMoreLinkButton_Click">
                            asp:LinkButton>
                        ItemTemplate>
                    asp:TemplateField>
                    Columns>
            asp:GridView>
        ContentTemplate>
    asp:UpdatePanel>
    div>

View.ascx.cs

using System;
using DotNetNuke.Services.Exceptions;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Modules.Actions;
using DotNetNuke.Services.Localization;
using DotNetNuke.Security;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Web.UI;
using System.Web.UI.WebControls;
 
 
namespace DotNetNuke.Modules.Readmore
{
 
    /// -----------------------------------------------------------------------------
    ///
    /// The ViewReadmore class displays the content
    ///
    /// -----------------------------------------------------------------------------
    public partial class View : ReadmoreModuleBase, IActionable
    {
 
        #region Event Handlers
 
        override protected void OnInit(EventArgs e)
        {
            InitializeComponent();
            base.OnInit(e);
        }
 
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler(this.Page_Load);
        }
 
 
        /// -----------------------------------------------------------------------------
        ///
        /// Page_Load runs when the control is loaded
        ///
        /// -----------------------------------------------------------------------------
        private void Page_Load(object sender, System.EventArgs e)
        {
            try
            {
 
            }
            catch (Exception exc) //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
            if (!Page.IsPostBack)
            {
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                dt.Columns.Add("BookName", typeof(string));
                dt.Columns.Add("Author", typeof(string));
                dt.Columns.Add("Publisher", typeof(string));
                dt.Columns.Add("Description", typeof(string));            
                ds.Tables.Add(dt);               
                dt.Rows.Add(new object[] { "programing in java" ,"Herbert", "BPB","Learn core java by steps and more about advance java programing "  });
                dt.Rows.Add(new object[] { "C++ programing", "Bala Gurswamy", "Macmillan", "C++ programing with easy steps ANSI C++ Networking with Windows Server 2008 , Managing routers , switches  Networking with Red hat Linux "});
                grdbookdetail.DataSource = ds;
                grdbookdetail.DataBind();
 
            }
     
         
        }
 
        #endregion
 
        #region Optional Interfaces
 
        public ModuleActionCollection ModuleActions
        {
            get
            {
                ModuleActionCollection Actions = new ModuleActionCollection();
                Actions.Add(GetNextActionID(), Localization.GetString("EditModule", this.LocalResourceFile), "", "", "", EditUrl(), false, SecurityAccessLevel.Edit, true, false);
                return Actions;
            }
        }
 
        #endregion
 
        public string Limit(object Desc, int length)
        {
 
 
            StringBuilder strDesc = new StringBuilder();
            strDesc.Insert(0, Desc.ToString());
 
            if (strDesc.Length > length)
                return strDesc.ToString().Substring(0, length) + "...";
            else
                return strDesc.ToString();
 
        }
 
        protected void ReadMoreLinkButton_Click(object sender, EventArgs e)
        {
 
            // System.Threading.Thread.Sleep(3000);
            LinkButton button = (LinkButton)sender;
            GridViewRow row = button.NamingContainer as GridViewRow;
            Label descLabel = row.FindControl("lblDescription") as Label;
            button.Text = (button.Text == "Read More") ? "Hide" : "Read More";
            string temp = descLabel.Text;
            descLabel.Text = descLabel.ToolTip;
            descLabel.ToolTip = temp;
        }
 
 
 
 
    }
 
}

Screenshot before clicking the read more button :

Screenshot after clicking the read more button :



DotNetNuke
Dotnetnuke Gridview
Blog Calendar
Blog Calendar List
2024 Apr  18  4
2024 Mar  33  4
2024 Feb  28  3
2024 Jan  8  7
2023 Dec  14  6
2023 Nov  45  5
2023 Oct  118  12
2023 Sep  245  9
2023 Aug  63  7
2023 Jul  31  5
2023 Jun  20  4
2023 May  43  5
2023 Apr  35  5
2023 Mar  98  6
2023 Feb  112  5
2023 Jan  41  4
2022 Dec  94  7
2022 Nov  257  2
2022 Sep  13  1
2022 Aug  28  2
2022 Jun  7  2
2022 May  4  2
2022 Apr  6  2
2022 Mar  2  1
2022 Feb  2  1
2022 Jan  1  1
2021 Dec  4  1
2021 Nov  2  1
2021 Oct  2  1
2021 Sep  12  1
2021 Aug  38  5
2021 Jul  36  4
2021 Jun  1247  5
2021 May  31  3
2021 Apr  2036  3
2021 Mar  189  5
2021 Feb  2142  7
2021 Jan  3108  9
2020 Dec  446  7
2020 Sep  74  3
2020 Aug  685  3
2020 Jul  128  1
2020 Jun  75  3
2020 Apr  69  3
2020 Mar  13  2
2020 Feb  28  5
2020 Jan  34  7
2019 Dec  17  4
2019 Nov  30  1
2019 Jan  23  2
2018 Dec  71  4
2018 Nov  68  3
2018 Oct  18  3
2018 Sep  1152  11
2018 Aug  7  2
2018 Jun  14  1
2018 Jan  68  2
2017 Sep  585  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  62  2
2017 May  21  1
2017 Apr  35  2
2017 Mar  135  4
2017 Feb  784  4
2016 Dec  204  3
2016 Nov  834  8
2016 Oct  307  10
2016 Sep  705  6
2016 Aug  39  1
2016 Jun  1876  6
2016 May  110  3
2016 Jan  71  2
2015 Dec  485  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1464  6
2015 Aug  14  1
2015 Jul  128  2
2015 Jun  11  1
2015 May  20  1
2015 Apr  30  3
2015 Mar  80  3
2015 Jan  5335  4
2014 Dec  17  1
2014 Nov  2257  4
2014 Oct  68  1
2014 Sep  107  2
2014 Aug  5280  1
2014 Jul  49  2
2014 Apr  2578  12
2014 Mar  301  17
2014 Feb  220  6
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  690  2
2013 Oct  256  3
2013 Sep  11  1
2013 Aug  40  3
2013 Jul  214  1
2013 Apr  57  6
2013 Mar  2292  10
2013 Feb  127  3
2013 Jan  343  2
2012 Nov  57  2
2012 Oct  499  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote