__doPostBack()의 두번째 인자... RaisePostBackEvent
들어오는 포스트백 이벤트를 처리하도록 포스트백을 발생시킨 서버 컨트롤에 알리는 역활을 합니다.
<MSDN 참조>
private string _eventArgs;
protected override void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument)
{
this._eventArgs = eventArgument;
base.RaisePostBackEvent(sourceControl, eventArgument);
}
protected void Button1_Click(object sender, EventArgs e)
{
this.label1.Text = this._eventArgs.ToString();
}
// HTML
<asp:Label ID="label1" runat="Server" Text="라벨입니다." />
<a href="javascript:funcTest();">테스트 스크립</a>
<asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" />
<script type="text/javascript">
//<![CDATA[
function funcTest()
{
__doPostBack("Button1","__dopost");
}
//]]>
</script>
코드비하인드 부분에서 _eventArgs라는 전역변수를 선언후 RaisePostBackEvent를 통해 들어온
eventArgument값을 전달하고, 발생된 버튼 클릭 이벤트처리 부분에서 전역변수 _eventArgs의 값을
가져다 사용하면 됩니다. EnableEventValidation을 False로 설정해야 정상으로 작동합니다.
번외편>>
이밖에<슈퍼꽁수> Button의 CommandArgument, CommandName을 사용해서 값을 넘길(?)수도 있습니다.
// HTML
<asp:Button ID="Button1" runat="server" Text="Button" onClick="Button1_Click" CommandArgument="CommandArg" CommandName="CommandName" />
사용하려는 버튼에 CommandArgument/CommandName 원하는 값을 설정합니다.
// 코드 비하인드
protected void Button1_Click(object sender, EventArgs e)
{
string strArgument = ((System.Web.UI.WebControls.Button)(sender)).CommandArgument;
string strCommandName = ((System.Web.UI.WebControls.Button)(sender)).CommandName;
}
출처: 酸素木.NET http://o2tree.tistory.com
'IT_Programming > ASP.NET (WEB)' 카테고리의 다른 글
[펌] ASP.NET Web.config의 ConnectionString 암호/복호화 방법 (0) | 2009.04.08 |
---|---|
ASP.NET 성능 개선 TIP 리스트 (0) | 2008.07.17 |
ASP.NET Security: 8 Ways to Avoid Attack (0) | 2007.07.10 |
[펌] 닷넷에서 자바 클래스 사용 (0) | 2007.06.30 |
[펌] 우편번호 XML 웹서비스(Web Services) 구축 (0) | 2007.02.11 |