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 characte
rs 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
2018 Nov  26  3
2018 Oct  7  3
2018 Sep  13  11
2018 Aug  2  2
2018 Jun  11  1
2018 Jan  41  2
2017 Sep  348  5
2017 Aug  14  1
2017 Jul  15  2
2017 Jun  36  2
2017 May  17  1
2017 Apr  31  2
2017 Mar  104  4
2017 Feb  269  4
2016 Dec  171  3
2016 Nov  267  8
2016 Oct  197  10
2016 Sep  341  6
2016 Aug  38  1
2016 Jun  1580  6
2016 May  102  3
2016 Jan  68  2
2015 Dec  373  6
2015 Nov  3  1
2015 Oct  11  1
2015 Sep  1105  6
2015 Aug  10  1
2015 Jul  101  2
2015 Jun  7  1
2015 May  20  1
2015 Apr  21  2
2015 Mar  67  3
2015 Jan  4998  4
2014 Dec  14  1
2014 Nov  2159  4
2014 Oct  74  2
2014 Sep  95  2
2014 Aug  2848  1
2014 Jul  40  2
2014 Apr  2401  12
2014 Mar  268  19
2014 Feb  216  8
2014 Jan  1490  16
2013 Dec  21  2
2013 Nov  607  2
2013 Oct  239  3
2013 Sep  10  1
2013 Aug  29  3
2013 Jul  202  1
2013 Apr  43  6
2013 Mar  1634  10
2013 Feb  272  4
2013 Jan  244  2
2012 Nov  24  2
2012 Oct  394  10
Tag Cloud
Interested in our services? Still not sure about project details? get a quote