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 Nov  4  1
2024 Aug  5  1
2024 Apr  45  4
2024 Mar  129  4
2024 Feb  229  3
2024 Jan  29  7
2023 Dec  24  6
2023 Nov  353  5
2023 Oct  475  12
2023 Sep  1207  9
2023 Aug  318  6
2023 Jul  47  6
2023 Jun  26  4
2023 May  44  5
2023 Apr  67  5
2023 Mar  183  6
2023 Feb  158  5
2023 Jan  66  4
2022 Dec  95  7
2022 Nov  282  2
2022 Sep  13  1
2022 Aug  32  2
2022 Jun  11  2
2022 May  6  2
2022 Apr  12  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  14  1
2021 Aug  49  5
2021 Jul  50  4
2021 Jun  1658  5
2021 May  40  3
2021 Apr  2202  3
2021 Mar  208  5
2021 Feb  2560  7
2021 Jan  3775  9
2020 Dec  520  7
2020 Sep  80  3
2020 Aug  767  3
2020 Jul  134  1
2020 Jun  93  3
2020 Apr  89  3
2020 Mar  19  2
2020 Feb  34  5
2020 Jan  47  7
2019 Dec  17  4
2019 Nov  38  1
2019 Jan  23  2
2018 Dec  110  4
2018 Nov  68  3
2018 Oct  18  3
2018 Sep  1222  11
2018 Aug  7  2
2018 Jun  18  1
2018 Jan  70  2
2017 Sep  588  5
2017 Aug  17  1
2017 Jul  17  2
2017 Jun  64  2
2017 May  21  1
2017 Apr  38  2
2017 Mar  138  4
2017 Feb  830  4
2016 Dec  207  3
2016 Nov  917  8
2016 Oct  317  10
2016 Sep  772  6
2016 Aug  39  1
2016 Jun  1883  6
2016 May  112  3
2016 Jan  72  2
2015 Dec  643  6
2015 Nov  4  1
2015 Oct  13  1
2015 Sep  1471  6
2015 Aug  14  1
2015 Jul  129  2
2015 Jun  11  1
2015 May  20  1
2015 Apr  30  3
2015 Mar  80  3
2015 Jan  5344  4
2014 Dec  17  1
2014 Nov  2260  4
2014 Oct  69  1
2014 Sep  107  2
2014 Aug  5319  1
2014 Jul  49  2
2014 Apr  2592  12
2014 Mar  303  17
2014 Feb  222  6
2014 Jan  1510  16
2013 Dec  21  2
2013 Nov  693  2
2013 Oct  256  3
2013 Sep  11  1
2013 Aug  40  3
2013 Jul  214  1
2013 Apr  61  6
2013 Mar  2357  10
2013 Feb  131  3
2013 Jan  350  2
2012 Nov  61  2
2012 Oct  518  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote