2011-09-14 8 views
0

사용자가 특정 LinkButton을 클릭하면 확인/취소로 확인 대화 상자를 열어야합니다. 사용자가 OK를 누르면 ASP.NET (데이터베이스 업데이트)에서 함수를 실행해야합니다. 다음과 같은자바 스크립트 내에서 ASP.NET 1.1 코드 실행

뭔가 ...

자바 스크립트

function openConfirm() { 
    return window.confirm("Are you sure you want to do this?"); 
} 

ASP

<asp:LinkButton runat="server" CommandName="viewPart" onClick="if(openConfirm() === true) <% SomeASPFunctionCall() %>;"> 
    Delete 
</asp:LinkButton> 

캐치 내 응용 프로그램, 그래서 어떤 ASP.NET 1.1을 것을 실행한다 OnClientClick을 컨트롤에 추가하는 것에 대한 참조는 부적합합니다 (ASP 2.0에는이 추가되었습니다.) __doPostBack 및 __eventObject 및 __eventArguments를 통해 포스트 백을 시도했지만 간단히 작동하지 않거나 알아낼 수 없습니다.

클라이언트 측/서버 측 상호 작용의 이러한 조합을 어떻게 관리해야합니까?

고맙습니다.

답변

1

linkButton에는 ID가 없습니다.

myLinkButton.Attributes.Add("onClick", "return window.confirm('Are you sure you want to do this?'"); 

는 의사 코드입니다 만 구축한다 :이 코드를 넣어 Page_PreRender

:

가에 ID를 넣어의 그것 (D이 ID를하시기 바랍니다 사용하지 않는) myLinkButton을이라고 가정 해 봅시다 또한 .NET 1.1에서 작동합니다. 나는 나이가들 때 사용하지 않을 것이라고 생각합니다.

편집 : 프레임 워크 및 Grid 버전에 따라 ItemDataBound 또는 RowDataBound 이벤트에서 편집하십시오. n ... 다음과 같이 입력하십시오.

private void myDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e) 
{ 
    if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     var myControl = (LinkButton)e.Item.FindControl("myLinkButton"); 

     if(myControl != null) 
     { 
      myControl.Attributes.Add("onClick", "return window.confirm('Are you sure you want to do this?'"); 
     } 
    } 
} 
+0

LinkButton에 ID가없는 이유는 DataGrid 내의 리피터 컨트롤 (구체적으로 TemplateColumn)에 있기 때문입니다. CSS 선택기와 같이 동적으로 생성 된 모든 링크 버튼을 처리 할 수있는 방법이 있습니까? – danyim

+0

네, 여전히 어쨌든 TemplateItem 안에 ID를 가질 수 있습니다. 내 대답을 편집하는 중입니다 ... –

+0

고마워, 잘 했어! – danyim

관련 문제