programing

동적 버튼에 동적 버튼 클릭 이벤트를 생성하려면 어떻게 해야 합니까?

newstyles 2023. 9. 26. 22:04

동적 버튼에 동적 버튼 클릭 이벤트를 생성하려면 어떻게 해야 합니까?

한 페이지에 하나의 버튼을 동적으로 만들고 있습니다.이제 그 버튼의 버튼 클릭 이벤트를 사용하고 싶습니다.

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