页面中的动态按钮不激活事件 [英] dynamic button not fire event in the page

查看:65
本文介绍了页面中的动态按钮不激活事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

页面中的动态按钮没有火灾事件



问题:保存按钮没有被解雇...我怎么能解决问题。



这里是后面的代码

  public   partial   class  _Default:System.Web.UI.Page 
{
受保护 void Page_Load( object sender ,EventArgs e)
{
}

protected void Page_PreRender( object sender,EventArgs e)
{
if (IsPostBack )
{
btnCreate_Click(sender,e);

}
}

受保护 void btnCreate_Click( object sender,EventArgs e)
{
DivTextBoxCreator.Controls.Clear();
HtmlTable htable = new HtmlTable();
htable.BgColor = 黄色;
for int i = 1 ; i < = int .Parse(TextBox1.Text); i ++)
{
HtmlTableRow hRow = new HtmlTableRow();
HtmlTableCell hCell = new HtmlTableCell();
TextBox txtGenerator = new TextBox();

txtGenerator.Text = TextBox: + i;
hCell.Controls.Add(txtGenerator);
hRow.Controls.Add(hCell);
htable.Controls.Add(hRow);
}
DivTextBoxCreator.Controls.Add(htable);

// 创建保存按钮
按钮按钮保存= < span class =code-keyword> new Button();
buttonSave.ID = buttonSave;
buttonSave.Text = 保存;
buttonSave。 önClientClick= return validate();
buttonSave.Click + = new EventHandler(buttonSave_Click);
buttonSave_Click(发件人,e);
DivTextBoxCreator.Controls.Add(buttonSave);
}

受保护 void buttonSave_Click( object sender,EventArgs e)
{
Response.Write( 测试);
}
}







这里是标签

 <%@     Page    语言  =   C#    AutoEventWireup   =  true    CodeFile   =  Default.aspx.cs   继承  =  _Default   %>  

& lt; !DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional / / EN http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtd >

< html xmlns = http://www.w3.org/1999/xhtml >
< head runat = 服务器 >
< title > < / title >
< / head >
< 正文 >
< 表格 id = form1 runat = 服务器 >
< div >

< asp:ScriptManager ID = ScriptManager1 runat = server >
< / asp:ScriptManager >

< 表格 >
< tr >
< td >
输入文本框数 < / td >
< td >
< asp:TextBox ID = < span class =code-keyword> TextBox1 runat = < span class =code-keyword> server > < / asp:TextBox >
< / td >
< / tr >
< ; tr >
< td >
< / td >
< td < span class =code-attribute> style = margin-removed 40px >
< < span class =code-leadattribute> asp:按钮 ID = btnCreate runat = server 文本 = 创建 < span class =code-attribute> 宽度 = 139px

onclick = btnCreate_Click / >
< / td >
< / tr >
< tr >
< td >
< / td >
< td style = margin -removed 40px >
< / td >
< / tr >
< tr >
< < span class =code-leadattribute> td
>
< / td >
< td < span class =code-attribute> style = margin-removed 40px >

< asp:UpdatePanel ID < span class =code-keyword> = UpdatePanel1 runat = server >
< ContentTemplate >
< div id = DivTextBoxCreator runat = 服务器 >

< / div >
< / ContentTemplate >

< span class =code-keyword>< / asp:UpdatePanel >
< / td >
< / tr >
< tr >
< td >
< / td >
< td 样式 = margin-removed 40px >
< asp:UpdatePanel ID = UpdatePanel2 runat = 服务器 >
< ContentTemplate >
< div id = DivButtonCreator RUNAT = server >



< / div >
< / ContentTemplate >

< / asp:UpdatePanel >
< / td >
< / tr >
< tr >
< td >
< / td >
< < span class =code-leadattribute> td style = margin-removed 40px >
< / td >
< / tr >
< / table >

< ; / div >
< / form >
< / body >
< / html >

解决方案





当您在asp没有加载新按钮时创建按钮然后你必须刷新你的asp页面或在负载中创建你的按钮。



见这个例子动态创建控制在ASP.NET 中[ ^ ]



祝你好运


可能是你试图挂钩处理程序的问题prerender中的一个按钮(在呈现页面之前)

尝试在事件渲染事件下挂钩事件。



可能是这样的排序你的问题

dynamic button not fire event in the page

problem : save button not fired ... how i could solve the problem.

Here''s the behind code

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        if (IsPostBack)
        {
            btnCreate_Click(sender, e);
            
        }
    }
    
    protected void btnCreate_Click(object sender, EventArgs e)
    {
        DivTextBoxCreator.Controls.Clear();
        HtmlTable htable = new HtmlTable();
        htable.BgColor = "Yellow";
        for (int i = 1; i <= int.Parse(TextBox1.Text); i++)
        {
            HtmlTableRow hRow = new HtmlTableRow();
            HtmlTableCell hCell = new HtmlTableCell();
            TextBox txtGenerator = new TextBox();

            txtGenerator.Text = "TextBox : " + i;
            hCell.Controls.Add(txtGenerator);
            hRow.Controls.Add(hCell);
            htable.Controls.Add(hRow);
        }
        DivTextBoxCreator.Controls.Add(htable);

        // create a Save Button
        Button buttonSave = new Button();
        buttonSave.ID = "buttonSave";
        buttonSave.Text = "Save";
        buttonSave. önClientClick = "return validate()";
        buttonSave.Click += new EventHandler(buttonSave_Click);
        buttonSave_Click(sender, e);
        DivTextBoxCreator.Controls.Add(buttonSave);
    }

    protected void buttonSave_Click(object sender, EventArgs e)
    {
        Response.Write("Test");
    }
}




Here''s the tags

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
    
        <table>
            <tr>
                <td>
                    Enter Number of TextBox</td>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td style="margin-removed 40px">
                    <asp:Button ID="btnCreate" runat="server" Text="Create" Width="139px" 

                        onclick="btnCreate_Click" />
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td style="margin-removed 40px">
                     </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td style="margin-removed 40px">
           
                        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                      <div id="DivTextBoxCreator"  runat="server">

                    </div>
                    </ContentTemplate>
                    
                    </asp:UpdatePanel>
                 </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td style="margin-removed 40px">
                   <asp:UpdatePanel ID="UpdatePanel2" runat="server">
                    <ContentTemplate>
                      <div id="DivButtonCreator"  runat="server">

                          

                    </div>
                    </ContentTemplate>
                   
                    </asp:UpdatePanel>
                </td>
            </tr>
            <tr>
                <td>
                     </td>
                <td style="margin-removed 40px">
                     </td>
            </tr>
        </table>
    
    </div>
    </form>
</body>
</html>

解决方案

Hi,

when you create the button in event the asp does not load your new button then you must refresh your asp page or you create your button in the load.

see this example Dynamically Created Controls in ASP.NET[^]

good luck


may be the problem is your trying to hook a handler to a button in prerender(before rendering of page)
try to hook the events under post render events.

may be this sorts out ur problem.


这篇关于页面中的动态按钮不激活事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆