ASP。net中如何在一个按钮click事件中调用另一个按钮的click事件。初学,求高手知道,谢谢!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP。net中如何在一个按钮click事件中调用另一个按钮的click事件。初学,求高手知道,谢谢!相关的知识,希望对你有一定的参考价值。
方法一: 直接指定 事件<asp:Button ID="btn1" runat="server" Text="按钮1" onclick="btn1_Click" /><br /><br /><br />
<asp:Button ID="btn2" runat="server" Text="按钮2" onclick="btn1_Click" />
方法二:后台添加
protected void Page_Load(object sender, EventArgs e)
Button btn;
btn= new Button();
btn.ID = "btn1";
btn.Text = "按钮1";
this.form1.Controls.Add(btn);
btn.Click += new EventHandler(btn1_Click);
btn = new Button();
btn.ID = "btn2";
btn.Text = "按钮2";
this.form1.Controls.Add(btn);
btn.Click += new EventHandler(btn1_Click);
protected void btn1_Click(object sender, EventArgs e)
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script language=\"javascript\">alert('点击了按钮事件');</script>");
参考技术A 按钮的click事件设成另外一个已有的就行了,但是如果你想区分到底是哪个按钮调用的,就要在代码中判断,判断sender到底是哪个按钮。 参考技术B 选中按钮,在属性栏中选择事件--》找到Click 直接选择你要绑定的事件就可以的 参考技术C js可以做到 document.getElementById("另一个按钮的ID").click(); 参考技术D 把药调用的按钮的事件复制到点击按钮的事件中去调用就行了吧
如何在动态按钮上创建动态按钮单击事件?
【中文标题】如何在动态按钮上创建动态按钮单击事件?【英文标题】:How can I create a dynamic button click event on a dynamic button? 【发布时间】:2011-09-05 11:42:02 【问题描述】:我正在动态地在页面上创建一个按钮。现在我想在那个按钮上使用按钮点击事件。
如何在 C# ASP.NET 中做到这一点?
【问题讨论】:
【参考方案1】: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)
【讨论】:
您必须在 OnInit 方法中创建按钮,否则事件处理程序将不起作用 首先 thnx IN this u write button.Click += (s,e) => your code; ; s = 对象发送者和 e = 事件参数 ri8?但按钮点击事件也不会触发......你能解释一下它是如何工作的...... @amitvyas:这是相同代码的更短但更复杂的版本。而不是显式事件处理程序声明 - 使用 lambda 表达式和匿名方法隐式: this is anon method with 2 arguments declared
这对我也不起作用;事件处理程序从未触发。这可能是因为每次收到请求时都会为按钮创建一个新的事件处理程序。
动态生成的事件必须在!IsPostBack之外的Page_Load/Page_Init事件中注册。【参考方案2】:
对新手来说更容易:
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
【讨论】:
什么是非新手版? @MichaelMello:非新手可能是 lambda 人。 "button.click += (sender, e) => // 在这里做点什么 " :) 我可以传递其他参数吗?即button.Click += new EventHandler(button_Click("Test"));
?
没关系,这行得通:button.Click += (se, ev) => button_Click(se, ev, qo);
【参考方案3】:
在创建按钮时只需将事件处理程序添加到按钮。
button.Click += new EventHandler(this.button_Click);
void button_Click(object sender, System.EventArgs e)
//your stuff...
【讨论】:
【参考方案4】:这样做更容易:
Button button = new Button();
button.Click += delegate
// Your code
;
【讨论】:
【参考方案5】:您可以通过简单的方式创建按钮,例如:
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();
在回发时,例如在页面加载时,您应该这样做:
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);
【讨论】:
【参考方案6】:假设您有 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);
...
【讨论】:
以上是关于ASP。net中如何在一个按钮click事件中调用另一个按钮的click事件。初学,求高手知道,谢谢!的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ASP.NET 中的 JavaScript 触发按钮单击事件