用__doPostBack()方法调用后台方法的方式中,页面没有__doPostBack()函数的解决

用ClientScriptManager.GetPostBackEventReference 方法产生__doPostBack()函数

 

  1. <%@ Page Language="C#"  %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <script runat="server">
  4.   public class MyControl : Label, IPostBackEventHandler
  5.   {
  6.     // Use the constructor to defined default label text.
  7.     public MyControl()
  8.     {
  9.       base.Text = "No postback raised.";
  10.     }
  11.     
  12.     // Implement the RaisePostBackEvent method from the
  13.     // IPostBackEventHandler interface. 
  14.     public void RaisePostBackEvent(string eventArgument)
  15.     {
  16.       base.Text = "Postback handled by " + this.ID.ToString() + ". <br/>" +
  17.                   "Postback caused by " + eventArgument.ToString() + ".";
  18.       
  19.     }
  20.   }
  21.   protected void Page_Load(object sender, EventArgs e)
  22.   {
  23.     // Get a ClientScriptManager reference from the Page class.
  24.     ClientScriptManager cs = Page.ClientScript;
  25.     // Create an instance of the custom label control and 
  26.     // add it to the page.
  27.     MyControl mycontrol = new MyControl();
  28.     mycontrol.ID = "mycontrol1";
  29.     PlaceHolder1.Controls.Add(mycontrol);
  30.     PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
  31.     
  32.     // Create a button element with its onClick attribute defined
  33.     // to create a postback event reference to the custom label control.
  34.     HtmlInputButton b = new HtmlInputButton();
  35.     b.ID = "mybutton1";
  36.     b.Value = "Click";
  37.     b.Attributes.Add("onclick", cs.GetPostBackEventReference(mycontrol, b.ID.ToString()));
  38.     PlaceHolder1.Controls.Add(b);
  39.     PlaceHolder1.Controls.Add(new LiteralControl("<br/>"));
  40.     
  41.     // Create a link element with its href attribute defined
  42.     // to create a postback event reference to the custom label control.
  43.     HtmlAnchor a = new HtmlAnchor();
  44.     a.ID = "myanchor1";
  45.     a.InnerText = "link";
  46.     a.HRef = cs.GetPostBackClientHyperlink(mycontrol, a.ID.ToString());
  47.     PlaceHolder1.Controls.Add(a);
  48.   }
  49. </script>
  50. <html  >
  51. <head id="Head1" runat="server">
  52.     <title>ClientScriptManager Example</title>
  53. </head>
  54. <body>
  55.     <form id="form1" runat="server">
  56.     <div>
  57.       <asp:PlaceHolder id="PlaceHolder1" 
  58.                        runat="server">
  59.       </asp:PlaceHolder>
  60.     </div>
  61.     </form>
  62. </body>
  63. </html>

参考:

http://msdn.microsoft.com/zh-cn/library/system.web.ui.clientscriptmanager.getpostbackeventreference(VS.80).aspx

http://msdn.microsoft.com/zh-cn/library/ms153112(VS.80).aspx

http://www.cnblogs.com/lovecherry/archive/2005/04/18/139634.html

你可能感兴趣的:(server,C#)