Also you can use the ResourceManager BeforeAjaxRequest listener. In this case you will avoid setting up a Before handler for each DirectEvent.
Example
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
protected void Button_Click(object sender, DirectEventArgs e)
{
string s = e.ExtraParams["param1"] + " " + e.ExtraParams["param2"] + " " + e.ExtraParams["param3"];
X.Msg.Alert("Button_Click", s).Show();
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Ext.NET Example</title>
<script type="text/javascript">
var setDefaultExtraParams = function (extraParams) {
extraParams.param1 = "Param1";
extraParams.param2 = "Param2";
};
</script>
</head>
<body>
<ext:ResourceManager runat="server">
<Listeners>
<BeforeAjaxRequest Handler="setDefaultExtraParams(extraParams);" />
</Listeners>
</ext:ResourceManager>
<ext:Button runat="server" Text="Button 1">
<DirectEvents>
<Click OnEvent="Button_Click">
<ExtraParams>
<ext:Parameter Name="param3" Value="Button1" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
<ext:Button runat="server" Text="Button 2">
<DirectEvents>
<Click OnEvent="Button_Click">
<ExtraParams>
<ext:Parameter Name="param3" Value="Button2" Mode="Value" />
</ExtraParams>
</Click>
</DirectEvents>
</ext:Button>
</body>
</html>