Client events can be created on the server. Here's a very simple example:
<input type="button" value="do it" onclick="Callback1.callback();" />
<ComponentArt:CallBack runat="server" ID="Callback1" OnCallback="Callback1_Callback">
<Content>
<asp:Label runat="server" ID="lbl" Text="Default"></asp:Label>
</Content>
</ComponentArt:CallBack>
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack || Callback1.IsCallback)
{
string script = "function myFunction() { alert ('before callback'); }";
ClientScript.RegisterClientScriptBlock(this.GetType(), "mycustomscript", script, true);
ClientEvent ce = new ClientEvent();
ce.EventHandler = "myFunction";
Callback1.ClientEvents.BeforeCallback = ce;
}
}
protected void Callback1_Callback(object sender, ComponentArt.Web.UI.CallBackEventArgs e)
{
lbl.Text = "did it";
lbl.RenderControl(e.Output);
}