Common MapTips
Common_MapTips_CSharp\ShowOnlyOnClick.aspx.cs
// Copyright 2010 ESRI
// 
// All rights reserved under the copyright laws of the United States
// and applicable international laws, treaties, and conventions.
// 
// You may freely redistribute and use this sample code, with or
// without modification, provided you include the original copyright
// notice and use restrictions.
// 
// See the use restrictions.
// 

using System;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class ShowOnlyOnClick : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string showMapTipsOnClickJavaScript = @"
            // Declare a function to call the setup method.  The setup method is located in the
            // page markup. Note that we place the call in a timeout to ensure that the script 
            // containing the function has been loaded prior to it being called.
            function invokeSetupFunction() {{
                // Pass the client-side GraphicFeatureGroup to the setup method
                window.setTimeout(""setupMapTipsOnClick($find('{0}'));"", 0);
            }}            

            // Wire the function to fire during the AJAX client-side load event
            Sys.Application.add_load(invokeSetupFunction);";
           
        // Replace "{0}" with the MapTips GraphicsLayer's client-side ID
        showMapTipsOnClickJavaScript = string.Format(showMapTipsOnClickJavaScript, 
            MapTips1.GraphicsLayerClientID);

        // Register the code as a startup script
        Page.ClientScript.RegisterStartupScript(this.GetType(), "showMapTipsOnClick", 
            showMapTipsOnClickJavaScript, true);

        Map1.ResourceRefreshed += new ESRI.ArcGIS.ADF.Web.UI.WebControls.MapResourceRefreshedEventHandler(Map1_ResourceRefreshed);
    }

    void Map1_ResourceRefreshed(object sender, ESRI.ArcGIS.ADF.Web.UI.WebControls.ResourceRefreshedEventArgs args)
    {
        // Check whether the resource being refreshed is the MapTip's graphics layer
        if (args.MapResource.Name == "ESRI ADF Layer Map Tips")
        {
            // JavaScript needed to re-initialize the show on click functionality
            string reInitMapTips = string.Format("setupMapTipsOnClick($find('{0}'));",
                MapTips1.GraphicsLayerClientID);

            // Package the JavaScript in a callback result and add it to the Map's collection
            ESRI.ArcGIS.ADF.Web.UI.WebControls.CallbackResult reApplyHandlersCallbackResult =
                ESRI.ArcGIS.ADF.Web.UI.WebControls.CallbackResult.CreateJavaScript(reInitMapTips);
            Map1.CallbackResults.Add(reApplyHandlersCallbackResult);
        }
    }
}