JavaScript でポストバックを行う方法として ScriptManager の __doPostBack メソッドがあります。
簡単な実装例
<head runat="server"> <script type="text/javascript"> function buttonClick() { var value = "test"; __doPostBack("buttonClick", value); } </script> </head>
<div> <asp:scriptmanager id="ScriptManager1" runat="server"></asp:scriptmanager> <input onclick="buttonClick()" type="button" value="click" /> </div>
__doPostBack メソッドで渡されたパラメータを取得します。Params コレクションからインデクサ指定で要素を取り出すか、Params.Get メソッドを利用します。
protected void Page_Load(object sender, EventArgs e) { Debug.WriteLine(Request.Params.Get("__EVENTARGUMENT")); //test Debug.WriteLine(Request.Params["__EVENTARGUMENT"]); //test Debug.WriteLine(Request.Params.Get("__EVENTTARGET")); //buttonClick Debug.WriteLine(Request.Params["__EVENTTARGET"]); //buttonClick }
参考情報
Understanding the JavaScript __doPostBack Function
http://aspalliance.com/articleViewer.aspx?aId=895&pId=-1
ASP.NET __doPostBack の中身
https://watermargin.net/programming/asp-net-__dopostback-in-depth/