Common_CustomJavaScript_CSharp\App_Code\CustomTool.cs
// Copyright 2011 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. // namespace CustomTools { // Shows how to retrieve arguments from callbacks and postbacks public class CustomArgumentsTool : ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools.IMapServerToolAction { #region IMapServerToolAction Members void ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools.IMapServerToolAction.ServerAction( ESRI.ArcGIS.ADF.Web.UI.WebControls.ToolEventArgs toolEventArgs) { System.Collections.Specialized.NameValueCollection nameValueCollectionInsideArg = null; // Check whether the page request was issued using a callback or a postback. A callback is used if no // ScriptManager is on the page containing the tool. Otherwise, a partial postback is used. if (toolEventArgs.Control.Page.IsCallback) { // Get the callback arguments from the __CALLBACKPARAM argument of the page request parameters string callbackArguments = toolEventArgs.Control.Page.Request.Params["__CALLBACKPARAM"]; nameValueCollectionInsideArg = ESRI.ArcGIS.ADF.Web.UI.WebControls.CallbackUtility.ParseStringIntoNameValueCollection(callbackArguments); // Get the value of the DropDownList1 server control, which has been manually added to the tool's // arguments via JavaScript in AddArgumentsToTool.aspx string dropDownListValue = nameValueCollectionInsideArg["DropDownList1"]; // Get the value of the custom argument created via JavaScript in AddArgumentsToTool.aspx string inlineValue = nameValueCollectionInsideArg["inlineArgument"]; } else { // Get the value of the DropDownList1 server control, which is automatically included in postbacks // (partial postbacks included) due to its being a server control string dropDownListValue = toolEventArgs.Control.Page.Request.Params["DropDownList1"]; // Get the postback event arguments from the __EVENTARGUMENT argument of the page request parameters string postbackEventArguments = toolEventArgs.Control.Page.Request.Params["__EVENTARGUMENT"]; nameValueCollectionInsideArg = ESRI.ArcGIS.ADF.Web.UI.WebControls.CallbackUtility.ParseStringIntoNameValueCollection( postbackEventArguments); // Get the value of the custom argument created via JavaScript in AddArgumentsToTool.aspx string inlineValue = nameValueCollectionInsideArg["inlineArgument"]; } } #endregion } }