LinkButton
이 페이지의 Page_Load
에서 클릭되었는지 확인하는 방법은 무엇입니까? 서비스에 대한 호출을 피하여 해당 이벤트에있는 것만 실행합니다.Page_Load에서 asp.net에서 클릭 한 LinkButton을 확인하는 방법
답변
페이지의 다른 포스트 백 이벤트가 실행될 때 Page_Load 코드가 실행되지 않도록하려는 것입니까? (이것은 웹폼 이벤트 모델에 의해 필요로 해킹의 비트입니다 이럴하지만, 그게 그거입니다.)
if (!IsPostBack)
을 아니면 내가 질문을 오해하고있다 : 그런 경우에는, 그것을 포장 ? 내가 이벤트 처리기에서 너무 늦기 때문에,이 작업을 수행해야하는 데 사용
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.linkbutton.commandname.aspx
:
특정하는 LinkButton을 식별에 관해서는, 당신은 명령 이름의 매개 변수를 사용할 수 있습니다. 자바 스크립트를 사용하여 숨겨진 필드에 클릭 한 버튼의 ID를 쓸 수 있습니다. Page_Load에서 검색 할 수 있습니다. 다른 방법은 내가 정확히 기억한다면 _EVENTTARGET 숨겨진 필드를 살펴 보는 것입니다.
LinkButton (또는 Control 또는 기타) 유형의 변수를 선언하고 click 이벤트에서 버튼에 대한 참조로 버튼을 업데이트 한 다음 Load에서 값을 확인할 수도 있습니다.
Page_Load
에서 실행해야하는 유일한 작업은 항상 everyt 요청으로 발생시키려는 코드입니다. 또는 한 번만 실행하려는 코드를 포스트 백 확인에 넣습니다. 예를 들어 :
protected void Page_Load(object sender, EventArgs e)
{
// Put the all code you need to run with EVERY request here
// Then add a post back check for any code you want to ONLY run on the very
// first request to the page.
if (!IsPostBack)
{
// Code you only want to run the first time. Usually setup code to initalize
// DropDownLists, Grids or pre populate a form, etc...
}
}
귀하의 LinkButton
코드는 클릭 핸들러에 자신의 모든이어야한다 : 이제
protected void yourLinkButton_Click(object sender, EventArgs e)
{
// code you want to execute when your button is clicked. This will run AFTER
// the Page_Load has finished.
}
당신은 통제의 GridView
, Repeater
또는 일부 유형에 사용되는 바인딩을 필요로 LinkButton
경우 이를 채우려면 RowCommand
이벤트 핸들러를 구현하여 LinkButton
이 눌려 졌는지 파악해야 할 것입니다. 또한 데이터를 CommandArgument
속성에 바인딩하여 고유 한 행 특정 데이터를 짝수 처리기에 전달할 수 있습니다.
정확히 동일한 처리기를 사용하여 LinkButton
개의 묶음이있는 경우 최악의 시나리오는 sender
을 캐스팅 한 다음 ID
값을 비교하는 것입니다.
protected void yourLinkButton_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)(sender);
if (btn.ID.Equals("Some control name you want to compare"))
{
// do something
}
}
질문에 표식을 벗어난 경우 댓글을 남겨두면 시도해 보겠습니다.
편집 : 당신이 때문에 다른 제약에 Page_Load
에있는 Button
알고있다처럼는 귀하의 의견을 바탕으로 소리가 난다. 음, Page_Load
에서 그것을 수행하는 깨끗한 방법은 없지만 수행 할 수 있습니다. Request.Form
키를 확인하고 특정 버튼 이름 (클릭 된 Button
만 키에 포함되어야 함)을 확인해야합니다.예 :
if (Request.Form.AllKeys.Contains("yourButton1"))
{
// then do something based on yourButton1
}
else if (Request.Form.AllKeys.Contains("yourButton2"))
{
// then do something based on yourButton2
}
// etc...
나는 주위를 둘러 쌀 수있는 다른 깨끗한 방법이라고 생각하지 않습니다. 프레임 워크에 sender
속성 중 하나에서 포스트 백을 발생시킨 컨트롤이 포함 된 경우 좋을 것입니다.
다른 편집 : 이것은 내 마음이 완전히 미끄러졌습니다. 위의 편집은 Button
에 대한 것이므로 __EVENTTARGET
을 채우지 않았기 때문에 편집했습니다. 당신이 LinkButton
을 사용하고 있기 때문에 당신은 다시 게시 원인 제어 얻기 위해 다음을 사용할 수 있습니다 : 나는 LinkButton
으로이 테스트하고 예상대로 작업을 수행
string controlNameThatCausedPostBack = Request.Form["__EVENTTARGET"];
. 마지막으로 문제를 :) 해결
희망
Kelsey에게 감사드립니다. 나는 같은 방식으로 구현했을 것이다. 문제는 내 페이지에있다. 페이지로드에서 페이지 매김을하고 숨겨진 필드 값을 확인하고있다. ... 나는 매우 나쁜 디자인을 알고 있지만 이미 구현되어 있으므로 변경할 수 없다. – batwadi
@ prakash 필자는 당신의 마음을 끌어 올려야 할 몇 가지 코드를 포함시키기 위해 제 대답을 업데이트했습니다. 도움이 더 필요하면 알려주세요. – Kelsey
시간을 주셔서 고맙습니다.하지만 문제는 LinkButton이 Request 매개 변수에 들어 있지 않습니다. 내 knoledge 버튼 ID가 요청 매개 변수에 들어옵니다. 제발 조언을 – batwadi
별도의 핸들러는 여기에 갈 수있는 방법입니다,하지만 당신은 각 버튼을 필요한 사람들의 고유 ItemCommand
특성, 필터를 줄 수 있습니다.
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack && Request.Form["__EVENTTARGET"] == LinkButton1.UniqueID)
{
// LinkButton1 was clicked
}
}
- 1. asp.net에서 암호를 확인하는 방법?
- 2. 아코디언에서 버튼을 클릭 한 색인을 확인하는 방법
- 3. 클릭 한 요소의 ID를 확인하는 방법 js
- 4. 클릭 한 노드를 확인하는 방법. Silverlight treeview
- 5. BulletedList에 텍스트 + LinkButton을 채우는 방법?
- 6. 동적 LinkButton을 클릭 할 때 변수 유지
- 7. 중계기에서 Linkbutton을 두 번 클릭 하시겠습니까?
- 8. ZedGraph C# 막대 차트 - 마우스로 클릭 한 막대를 확인하는 방법?
- 9. Silverlight 컨텍스트 메뉴 : 클릭 한 메뉴를 확인하는 방법?
- 10. asp.net에서 이전 버튼을 클릭 한 후 asp.net에서 이전 페이지로 이동하는 방법
- 11. JQuery와 : 확인하는 방법/체크 박스를 클릭
- 12. Page_load에서 페이지 유효성 검사를 수행하는 방법
- 13. page_load에서 계단식 디자인으로 DropDownList 항목을 선택하는 방법
- 14. LinkButton을 사용 중지해도 자바 스크립트에서 클릭 이벤트가 사용 중지되지 않습니다.
- 15. 컨트롤이 page_load에서 생성되지 않았습니다.
- 16. vb.net의 page_load에서 세션 시작
- 17. asp.net에서 Graphics의 클릭 이벤트를 받으십시오.
- 18. asp.net에서 클래스의 인스턴스를 한 번만 만드는 방법
- 19. asp.net에서 매시간 한 번만 표시하는 방법?
- 20. asp.net에서 로그 아웃 한 후 리디렉션하는 방법
- 21. 버튼을 제출하는 동안 asp.net에서 텍스트 상자의 중복 값을 확인하는 방법
- 22. ics 파일을 클릭 한 시간을 감지하는 방법
- 23. 클릭 한 이벤트에서 호출 버튼을 얻는 방법
- 24. vb.net에서 클릭 한 버튼을 강조 표시하는 방법
- 25. 클릭 한 모든 사람들을 보는 방법?
- 26. 두 번째로 클릭 한 요소를 숨기는 방법
- 27. jQuery에서 클릭 한 요소의 ID를 얻는 방법
- 28. checkcolumn을 클릭 한 후 상점을 저장하는 방법?
- 29. UITableview에서로드 한 후 행을 선택하고 확인하는 방법
- 30. 입력 한 날짜 시간을 확인하는 방법
왜 페이지로드에 있어야합니까? 왜 각 링크 버튼에 대해 별개의 이벤트 처리기를 가지고 있지 않고 그 기능을 처리해야합니까? – Tommy
페이지로드 실행이 링크와 관련이 없습니다. – batwadi
죄송합니다.하지만 귀하의 요구 사항은 잘못된 디자인에 대한 해결 방법처럼 들립니다. 나는 당신이 asp.net의 개념에 대해 읽어 줄 충고를 원할 것이다. 좋은 시작은 Kelsey의 대답입니다. – Scordo