default button for asp.net user control (.net 1.1)

  406                 control.BasePage.RegisterStartupScript(“DefaultButtonForLogin”, String.Format(@”

  407 <script language=””javascript””>

  408 <!–

  409 function handler(e)

  410 {{

  411     if ((e && ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13))) || (event && event.keyCode == 13))

  412     {{

  413         document.forms[0].action = ‘{0}’;

  414         {1};

  415         return false;

  416     }}

  417 }}

  418 if (!!document.forms[0][‘{2}’])

  419     document.forms[0][‘{2}’].onkeydown = handler;

  420 if (!!document.forms[0][‘{3}’])

  421     document.forms[0][‘{3}’].onkeydown = handler;

  422 //–>

  423 </script>”,

  424                     secureURL,

  425                     control.BasePage.GetPostBackClientEvent(control.LoginButton, “”),

  426                     control.PasswordTextBox.ClientID,

  427                     control.EmailTextBox.ClientID));

특히 if (!!document.forms[0][‘{2}’]) 부분이 중요하다. !!는 truthy or falsy를 해주는 표현인데, asp.net control들이 visible=false 일 경우, 서버단에서는 control이 null이 아니지만, rendering이 되지않기 때문에, javascript에서는 null이거나 undefined 에러가 나는 경우가 많다. 그러므로, 반드시 null 또는 undefined 체크를 해줄 것.

default button for asp.net user control (.net 1.1)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s