You can use the ScriptManager.RegisterDataItem method with Sys.WebForms.PageRequestManager. Consider the following test page, which, when you click the button, registers the data element using the script manager, and on the client side it processes the endrequest and receives this data element.
<%@ Page Language="C#" AutoEventWireup="true" Inherits="WebApplication1._Default" %> <script runat="server"> protected void btTest_Click(object sender, EventArgs e) { ScriptManager1.RegisterDataItem(btTest, "Your value to pass to the client"); } </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></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="upTest" runat="server"> <ContentTemplate> <asp:Button ID="btTest" runat="server" Text="Click Me" OnClick="btTest_Click" /> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> <script language="javascript" type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler); function endRequestHandler(sender, args) { var dataItems = args.get_dataItems()['<%= btTest.ClientID %>']; if (dataItems != null) alert(dataItems); } </script> </html>
A_nablsi
source share