/// <summary>
 /// Handle click event by raising a View Add event 
 /// and passing the list criteria.
 /// </summary>
 /// <param name="sender">Event source</param>
 /// <param name="e">Runtime arguments</param>
 protected void add_Click(object sender, EventArgs e)
 {
     if (View_Add != null)
     {
         SetItemKeyValue(list_Criteria, null);
         FindArgs f = new FindArgs(e, list_Criteria);
         View_Add(sender, f);
     }
 }
        /// <summary>
        /// Handle the "Filter" by new letter command, 
        /// passing NULL if "ALL" is selected.
        /// </summary>
        /// 
        protected void letters_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            // Handle the "Filter" new record command
            if (e.CommandName == FILTER_CMD)
            {
                // Set the new Letter selection
                Letter = (string) e.CommandArgument;

                // Raise the "Filter" event so that client can update its list.
                if (View_Filter != null)
                {
                    string letter = Letter;
                    if (ALL.Equals(letter)) letter = null;
                    string letter2 = letter + WILDCARD;
                    IDictionary criteria = new Hashtable(1);
                    criteria.Add(ITEM_INITIAL, letter2);
                    FindArgs a = new FindArgs(e, criteria);
                    View_Filter(source, a);
                }
            }
        }
 /// <summary>
 /// Fire Click event when input is ready to submit.
 /// </summary>
 /// <param name="sender">Source of event [find Button]</param>
 /// <param name="e">Runtime parameters</param>
 /// 
 protected void find_Click(object sender, EventArgs e)
 {
     if (View_Find != null)
     {
         FindArgs a = new FindArgs(e, Criteria);
         View_Find(sender, a);
     }
 }