동적 버튼에 동적 버튼 클릭 이벤트를 생성하려면 어떻게 해야 합니까?
한 페이지에 하나의 버튼을 동적으로 만들고 있습니다.이제 그 버튼의 버튼 클릭 이벤트를 사용하고 싶습니다.
C# ASP에서 어떻게 해야 합니까?NET?
Button button = new Button();
button.Click += (s,e) => { your code; };
//button.Click += new EventHandler(button_Click);
container.Controls.Add(button);
//protected void button_Click (object sender, EventArgs e) { }
초보자에게 더 쉬운 것:
Button button = new Button();
button.Click += new EventHandler(button_Click);
protected void button_Click (object sender, EventArgs e)
{
Button button = sender as Button;
// identify which button was clicked and perform necessary actions
}
이벤트 핸들러를 작성할 때 버튼에 추가하기만 하면 됩니다.
button.Click += new EventHandler(this.button_Click);
void button_Click(object sender, System.EventArgs e)
{
//your stuff...
}
다음과 같은 작업을 수행하는 것이 훨씬 더 쉽습니다.
Button button = new Button();
button.Click += delegate
{
// Your code
};
다음과 같은 간단한 방법으로 단추를 만들 수 있습니다.
Button button = new Button();
button.Click += new EventHandler(button_Click);
protected void button_Click (object sender, EventArgs e)
{
Button button = sender as Button;
// identify which button was clicked and perform necessary actions
}
그러나 모든 포스트백에서 요소/요소를 재생성해야 하므로 이벤트가 발생하지 않을 수 있습니다. 그렇지 않으면 이벤트 핸들러가 손실됩니다.
ViewState가 이미 생성되었는지 확인하고 모든 포스트백에서 요소를 다시 만드는 이 솔루션을 시도했습니다.
예를 들어, 이벤트 클릭 시 버튼을 생성하는 경우를 상상해 보십시오.
protected void Button_Click(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) != "true")
{
CreateDynamicElements();
}
}
포스트백(postback)의 경우, 예를 들어 페이지 로드의 경우 다음 작업을 수행해야 합니다.
protected void Page_Load(object sender, EventArgs e)
{
if (Convert.ToString(ViewState["Generated"]) == "true") {
CreateDynamicElements();
}
}
CreateDynamicElements()에서 단추 등 필요한 모든 요소를 넣을 수 있습니다.
이것은 저에게 아주 잘 들어맞았습니다.
public void CreateDynamicElements(){
Button button = new Button();
button.Click += new EventHandler(button_Click);
}
예를 들어 25개의 객체가 있고 하나의 객체 클릭 이벤트를 하나의 프로세스에서 처리하고자 한다고 가정합니다.25명의 딜러를 작성하거나 루프를 사용하여 클릭 이벤트를 처리할 수 있습니다.
public form1()
{
foreach (Panel pl in Container.Components)
{
pl.Click += Panel_Click;
}
}
private void Panel_Click(object sender, EventArgs e)
{
// Process the panel clicks here
int index = Panels.FindIndex(a => a == sender);
...
}
언급URL : https://stackoverflow.com/questions/6187944/how-can-i-create-a-dynamic-button-click-event-on-a-dynamic-button
'programing' 카테고리의 다른 글
시스템과 연결하는 방법.Data.OracleClient에서 Windows 인증으로 Oracle db로 이동하시겠습니까? (0) | 2023.09.26 |
---|---|
Google 페이지 속도가 모바일에서 srcset을 무시합니다. (0) | 2023.09.26 |
BASE 용어 설명 (0) | 2023.09.26 |
가장 최근 댓글로 워드프레스 게시물 주문하기 (0) | 2023.09.26 |
특정 태그가 하나만 있는 경우 쿼리의 게시물 필터링 (0) | 2023.09.26 |