ãƒã‚¹ãƒˆãƒãƒƒã‚¯ã‚’発生ã•ã›ãªã„方法
目次
ãƒã‚¹ãƒˆãƒãƒƒã‚¯ã¨ã¯
通常
ç¾åœ¨ãƒ–ラウザã«è¡¨ç¤ºã—ã¦ã„るページã¨ã¯åˆ¥ã®ãƒšãƒ¼ã‚¸ã‚’リクエストã™ã‚‹ã€‚
ãƒ‹ãƒ¥ãƒ¼ã‚¹ã‚µã‚¤ãƒˆã®æ§˜ã«ã‚るページをèªã¿çµ‚ã‚ã£ãŸã‚‰æ¬¡ã®ãƒšãƒ¼ã‚¸(別URL)・・・ã¨ã€‚
(é™çš„ページã§ã¯åŒã˜ãƒšãƒ¼ã‚¸ã‚’å†åº¦å‘¼ã³å‡ºã™æ„味ã¯ç„¡ã„)
ãƒã‚¹ãƒˆãƒãƒƒã‚¯
å‹•çš„ãªã‚µã‚¤ãƒˆã«ãŠã„ã¦åŒä¸€ãƒšãƒ¼ã‚¸ï¼šåŒä¸€URL内ã§ãƒ‘ラメーターを変ãˆã¦SQLã®å®Ÿè¡Œçµæžœã‚’表示ã—ãŸã‚Šã™ã‚‹ç›®çš„ã§ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå´ã‹ã‚‰ã‚µãƒ¼ãƒãƒ¼å´ã«å‡¦ç†ã‚’ç§»ã™ç‚ºã«ä½¿ç”¨ã™ã‚‹ã€‚
ãã®éš›ã€ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆã«è¿”ã™(表示ã™ã‚‹)ページãŒåŒä¸€ãƒšãƒ¼ã‚¸ã§ã‚ã‚‹ã€ã¨ã„ã†å‡¦ç†ã€‚
イベントãƒãƒ³ãƒ‰ãƒ©ãƒ¼ã®ç™ºç”Ÿï¼†ãƒšãƒ¼ã‚¸é·ç§»ã—ãªã„処ç†ã¨åŒç¾©ã€‚
ASP.NETã§ã¯ãƒœã‚¿ãƒ³ã‚¯ãƒªãƒƒã‚¯ç‰ã§ç™ºç”Ÿã•ã›ã‚‹äº‹ãŒã§ãる。
(発生ã—ã¦æ¬²ã—ããªã„時ã«ã‚‚発生ã—ã¦ã—ã¾ã†)
ãƒã‚¹ãƒˆãƒãƒƒã‚¯ã§ã¯æç”»ã‚’å…¨ã¦ã‚„り直ã™ã®ã§å‡¦ç†ã®ç„¡é§„ãŒå¤§ãã„。
以下ã¯ã€ä¸å¿…è¦ãªãƒã‚¹ãƒˆãƒãƒƒã‚¯ã‚’発生ã•ã›ãªã„ã€
ã¾ãŸã¯ãƒã‚¹ãƒˆãƒãƒƒã‚¯ç™ºç”Ÿæ™‚ã®æç”»ã‚’åˆ¶é™ã™ã‚‹æ–¹æ³•
ãªãŠã€F5押下時ç‰ã®å†èªã¿è¾¼ã¿ã‚‚ãƒã‚¹ãƒˆãƒãƒƒã‚¯ã€‚
レスãƒãƒ³ã‚¹æ™‚ã«å‡¦ç†ã•ã›ãªã„
ãƒã‚¹ãƒˆãƒãƒƒã‚¯æ™‚ã¨é€šå¸¸æ™‚ã«å‡¦ç†ã‚’分å²ã•ã›ã‚‹
ãƒã‚¹ãƒˆãƒãƒƒã‚¯ãƒãƒƒã‚¯ã‹å¦ã‹ï¼Ÿã®åˆ¤å®š
if ( ! Page.IsPostBack ) {
 åˆå›žã®ã¿å®Ÿè¡Œã•ã›ã‚‹å‡¦ç†
 (ãƒã‚¹ãƒˆãƒãƒƒã‚¯æ™‚ã¯ã•ã›ãªã„処ç†)
}
bool ret = Page.IsPostBack;
⇒ ret : true(ãƒã‚¹ãƒˆãƒãƒƒã‚¯æ™‚)
⇒ ret : false(通常時)
リクエストã•ã›ãªã„
TextBoxã€RadioButtonã€CheckBoxç‰
AutoPostBackプãƒãƒ‘ティをFalseã«ã€‚
<asp:TextBox runat="server" AutoPostBack="False"></asp:TextBox>
※デフォルト:False
通常ã€ã“れらã®ã‚µãƒ¼ãƒãƒ¼ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã®å‡¦ç†ã‚¤ãƒ™ãƒ³ãƒˆã¯å³åº§ã«ãƒãƒ³ãƒ‰ãƒ«ã•れãš(ãƒã‚¹ãƒˆãƒãƒƒã‚¯ãŒç™ºç”Ÿã—ãªã„)ã€ãƒœã‚¿ãƒ³ã‚¯ãƒªãƒƒã‚¯ã‚¤ãƒ™ãƒ³ãƒˆç‰ã®ãƒã‚¹ãƒˆãƒãƒƒã‚¯ç™ºç”Ÿæ™‚ã«ã¾ã¨ã‚ã¦å‡¦ç†ã•れる。
ã‚ã–ã¨ç™ºç”Ÿã•ã›ãŸã„å ´åˆã«ã“れをTrueã«ã™ã‚‹ã€‚
(「ASP.NET Webフォームãƒã‚¹ãƒˆãƒãƒƒã‚¯ã‚’発生ã•ã›ã‚‹æ–¹æ³•ã€å‚ç…§)
ボタンã«ã“ã®ãƒ—ãƒãƒ‘ティã¯ãªã„。
Buttonã€Linkç‰
OnClientClickプãƒãƒ‘ティã«Return False;ã‚’è¨å®š
<asp:Button runat="server" Text="Button" OnClientClick="return false;" />
クライアントå´ã®ã‚¤ãƒ™ãƒ³ãƒˆãŒå®Ÿè¡Œã•れãŸå¾Œã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã™ã‚‹ç‚ºã€
サーãƒãƒ¼å´ã®ã‚¯ãƒªãƒƒã‚¯ã‚¤ãƒ™ãƒ³ãƒˆãŒç™ºç”Ÿã—ãªããªã‚ŠASP.NETã®ç®¡ç†ã‚’離れる。
クリックã«ã‚ˆã£ã¦ä½•ã‹ã®å‡¦ç†ã‚’ã•ã›ã‚‹å ´åˆã¯JavaScriptç‰ã®å‡¦ç†ãŒå¿…è¦ã€‚
※~aspx/~.js
<script>
  function fnMethod()
  {
    ~OnClientClickã§ç™ºç”Ÿã™ã‚‹ã‚¯ãƒ©ã‚¤ã‚¢ãƒ³ãƒˆå´ã‚¤ãƒ™ãƒ³ãƒˆï½ž
  };
</script>
<asp:Button
  runat="server"
  Text="Button"
  ※サーãƒãƒ¼å´ã‚¤ãƒ™ãƒ³ãƒˆ
  OnClick="myButton_Click"
  ※クライアントå´ã‚¤ãƒ™ãƒ³ãƒˆ
  OnClientClick="fnMethod(); return false;" /><br />
※~.aspx.cs
public partial class WebForm1 : System.Web.UI.Page
{
 protected void myButton_Click(object sender, EventArgs e)
 {
  ~OnClickã§ç™ºç”Ÿã™ã‚‹ã‚µãƒ¼ãƒãƒ¼å´ã‚¤ãƒ™ãƒ³ãƒˆï½ž
 }
}
通常
OnClientClick
↓
OnClick
今回
myMethod()
↓
return false â†ã“ã“ã§å‡¦ç†ãŒæ¢ã¾ã‚‹ã€‚
↓
Button1_Click() â†ç™ºç”Ÿã—ãªã„。
※ãªãŠã€ã‚µãƒ¼ãƒãƒ¼å´ã§å‡¦ç†ã—ãªã„ã®ã§ã‚れã°ASP.NET用ボタンã§ã‚ã‚‹<asp:Button>åŠã³runat属性ã¯å¿…è¦ãªã„ã®ã§htmlã®ãƒœã‚¿ãƒ³ãŒæœ›ã¾ã—ã„。
↓
<button
  onclick="fnMethod(); return false;">
  Button
</button>
Ajaxコントãƒãƒ¼ãƒ«ã«ã‚ˆã‚‹éžåŒæœŸé€šä¿¡
Ajax通信ã§ã¯å޳坆ã«ã¯ãƒã‚¹ãƒˆãƒãƒƒã‚¯ã¯ç™ºç”Ÿã™ã‚‹ãŒã€ç”»é¢å…¨ä½“ã®å†æç”»ã¯è¡Œã‚れãªã„。
「ASP.NET WebフォームAjax利用ã€å‚ç…§
<form>è¦ç´
※フォーム内ボタン