Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 回发后在动态添加的按钮上处理事件_C#_Asp.net_Button_Event Handling - Fatal编程技术网

C# 回发后在动态添加的按钮上处理事件

C# 回发后在动态添加的按钮上处理事件,c#,asp.net,button,event-handling,C#,Asp.net,Button,Event Handling,基本上,我有一个更新面板,其中有一个链接按钮,当用户点击链接按钮时,所有内容都被清除,文本框显示,用户在其中输入内容,当用户点击回车键时,更新面板应该被刷新或更新,或重新填充所有内容 我该怎么做呢??? 我尝试这样做的方式是,当触发链接按钮的事件处理程序时,我动态创建了一个隐藏按钮,并为其分配了一个新的事件处理程序,当用户点击enter键时,该事件处理程序将被触发。这个新的动态按钮是在链接按钮事件处理程序中创建的。在这个新的按钮事件处理程序中,我将重新填充内容 我的方式的问题是动态创建的按钮的事

基本上,我有一个更新面板,其中有一个链接按钮,当用户点击链接按钮时,所有内容都被清除,文本框显示,用户在其中输入内容,当用户点击回车键时,更新面板应该被刷新或更新,或重新填充所有内容

我该怎么做呢???

我尝试这样做的方式是,当触发链接按钮的事件处理程序时,我动态创建了一个隐藏按钮,并为其分配了一个新的事件处理程序,当用户点击enter键时,该事件处理程序将被触发。这个新的动态按钮是在链接按钮事件处理程序中创建的。在这个新的按钮事件处理程序中,我将重新填充内容

我的方式的问题是动态创建的按钮的事件处理程序没有被触发。 为什么

请试着用c#回答。 提前谢谢

问候,

我的代码#


现在的问题是mento_click事件处理程序没有被触发???

您可以在文本框中捕获enter键吗

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        //add event keydown
        textBox1.KeyDown += new KeyEventHandler(textBox1_KeyDown);

    }
    void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        switch (e.KeyCode )
        {

            case Keys.Enter:
                //YOur updatecode here:
                MessageBox.Show("You press enter");
                break;

            default:
                break;
        }
    }
}

每次有请求时,必须将事件附加到页面初始化页面加载,否则事件将无法连接到控件

您可以查看此链接以了解原因:

范例

如果要将其连接到submit上,您应该执行以下操作:

   page_init(object sender, EventArgs e)
   {
      CreateControls();
   }

   private void CreateControls()
   {
       //Create button with event and add to the panel
   }

   clickEvent(object sender, EventArgs e)
   {
       updatePanel.Update();
   }
这将正确触发事件。很抱歉,我只是在飞行中写了这篇文章,没有对它进行测试,但我希望它能给你一个大致的想法


干杯。

对于所有在asp.net中通过按钮发回邮件的人,我想介绍一种处理按钮点击事件的替代方法

1) 使用前缀为动态创建的按钮命名(例如:btn_)。这样,您创建的每个按钮都将有一个以该前缀开头的名称。例如,您创建的第一个按钮的名称为btn_0。您可以通过这样的例行程序来实现这一点:

For _counter As Integer = 0 To 3
Dim butt As New Button
' the next 1 line is convenient when programming for the .net 4.0 framework:
butt.ClientIDMode = UI.ClientIDMode.Static 
butt.butt.ID = "btn_" & _counter
butt.Text = "someting"
page.controls.add(butt)
next
2) 。。。然后,为了处理这一切,您可以在asp.net页面的on_load事件中这样做:

If IsPostBack Then
    For Each key As String In Request.Form
        If InStr(Trim(key), "btn_") > 0 Then
            Response.Write(Request.Form(key))
        End If
    Next   
End If

是的,请告诉我们你得到了什么,你看到了什么行为。我附上了一些我正在尝试做的相关代码。请看看你是否能帮我。谢谢你说的是网络表单还是winform?我想到了一个来自asp.net标签的网页表单。你能给我一些将事件附加到页面加载的例子吗??
If IsPostBack Then
    For Each key As String In Request.Form
        If InStr(Trim(key), "btn_") > 0 Then
            Response.Write(Request.Form(key))
        End If
    Next   
End If