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