/// <summary>
        /// Lookup the PAGE_INDEX_HINT or the NOT_FOUND_HINT in the application 
        /// message resources, and return as a formatted string. 
        /// </summary>
        /// <param name="args">Our ListPageIndexChangedArgs with the page index values</param>
        /// <returns>Formatted message string ready to markup and present</returns>
        /// 
        public virtual string ListPageIndexChanged_Message(ListPageIndexChangedArgs args)
        {
            bool isItems = (args.ItemCount > 0);
            ListPageIndexChanged_IsItems(isItems);

            string[] m_args = new string[3];
            m_args[0] = Convert.ToString(args.ItemFrom);
            m_args[1] = Convert.ToString(args.ItemThru);
            m_args[2] = Convert.ToString(args.ItemCount);

            string text = isItems ? GetMessage(PAGE_INDEX_HINT, m_args) : GetMessage(NOT_FOUND_HINT);
            return text;
        }
 /// <summary>
 /// Raise the ListPageIndexChanged event.  
 /// </summary>
 /// <param name="sender">Event source</param>
 /// <param name="page">Current page number</param>
 /// <param name="size">Items per page</param>
 /// <param name="count">Total number of items</param>
 /// 
 private void ListPageIndexChanged_Raise(object sender, int page, int size, int count)
 {
     if (ListPageIndexChanged != null)
     {
         int from = (page*size) + 1;
         int thru = (page*size) + size;
         if (thru > count) thru = count;
         ListPageIndexChangedArgs a = new ListPageIndexChangedArgs();
         a.ItemFrom = from;
         a.ItemThru = thru;
         a.ItemCount = count;
         ListPageIndexChanged(sender, a);
     }
 }