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# asp.net-按钮事件未启动_C#_Asp.net_Events_Button - Fatal编程技术网

C# asp.net-按钮事件未启动

C# asp.net-按钮事件未启动,c#,asp.net,events,button,C#,Asp.net,Events,Button,我在我的页面上有一个搜索按钮,它在数据库上运行查询,在表中提取并显示一些条目,并为每个条目创建一个按钮。它看起来像这样: List<Friend> friends = SearchFriend(searchStr); foreach (Friend f in friends) { TableCell addCell = new TableCell(), nameCell = new TableCell(); addCell.Text = ""; if (!f

我在我的页面上有一个搜索按钮,它在数据库上运行查询,在表中提取并显示一些条目,并为每个条目创建一个按钮。它看起来像这样:

List<Friend> friends = SearchFriend(searchStr);
foreach (Friend f in friends)
{
    TableCell addCell = new TableCell(), nameCell = new TableCell();

    addCell.Text = "";
    if (!f.IsMyFriend)
    {
            LinkButton addFriendBtn = new LinkButton();
            addFriendBtn.Text = "Add as Friend";
            addFriendBtn.Click += new EventHandler(addFriendBtn_Click);
            addFriendBtn.ID = "add_" + f.ID.ToString();

            addCell.Controls.Add(addFriendBtn);
    }
    nameCell.Text = f.Name;

    TableRow row = new TableRow();
    row.Cells.Add(addCell);
    row.Cells.Add(nameCell);

    SearchFriendTable.Rows.Add(row);
}
List friends=searchfriends(searchStr);
foreach(朋友中的朋友f)
{
TableCell addCell=new TableCell(),nameCell=new TableCell();
addCell.Text=“”;
如果(!f.IsMyFriend)
{
LinkButton addFriendBtn=新建LinkButton();
addFriendBtn.Text=“添加为好友”;
addFriendBtn.Click+=新建事件处理程序(addFriendBtn\u Click);
addFriendBtn.ID=“添加”+f.ID.ToString();
addCell.Controls.Add(addFriendBtn);
}
nameCell.Text=f.Name;
TableRow行=新TableRow();
row.Cells.Add(addCell);
行.单元格.添加(名称单元格);
SearchFriendTable.Rows.Add(row);
}
问题是LinkButton事件在按下时不会触发(将LinkButton更改为简单按钮也无法解决此问题)

这是我在这一部分中得到的html:

<td><a id="ctl00_contentPH_add_2" href="javascript:__doPostBack('ctl00$contentPH$add_2','')">Add as Friend</a></td>

另外-当我在页面加载上放置断点时,我确实看到了带有此控件id的u事件目标-但是事件从未开始运行

有什么线索吗?
谢谢。

您是在何时何地创建该按钮的


如果动态创建按钮并希望侦听事件,则必须在PageInit事件中创建该按钮。总是所以不要使用if(!IsPostback)

您在何时何地创建了该按钮

如果动态创建按钮并希望侦听事件,则必须在PageInit事件中创建该按钮。总是所以不要使用if(!IsPostback)

试试这个

<td><a id="ctl00_contentPH_add_2" href="javascript:__doPostBack('<%=ct100_contentPH_add_2.ClientId %>','')">Add as Friend</a></td>

试试这个

<td><a id="ctl00_contentPH_add_2" href="javascript:__doPostBack('<%=ct100_contentPH_add_2.ClientId %>','')">Add as Friend</a></td>

为链接按钮添加事件处理程序并处理这些事件

 if (!f.IsMyFriend)
    {
            LinkButton addFriendBtn = new LinkButton();
            addFriendBtn.Text = "Add as Friend";
            addFriendBtn.Click += new EventHandler(addFriendBtn_Click);
            addFriendBtn.ID = "add_" + f.ID.ToString();
            addFriendBtn.Click += new EventHandler(addFriendBtn_Click);
            addCell.Controls.Add(addFriendBtn);
    }
事件:

  protected void addFriendBtn_Click(object sender, EventArgs e) 
        {
            LinkButton lnk = (LinkButton)sender;
            // do your coding
    }

为链接按钮添加事件处理程序并处理这些事件

 if (!f.IsMyFriend)
    {
            LinkButton addFriendBtn = new LinkButton();
            addFriendBtn.Text = "Add as Friend";
            addFriendBtn.Click += new EventHandler(addFriendBtn_Click);
            addFriendBtn.ID = "add_" + f.ID.ToString();
            addFriendBtn.Click += new EventHandler(addFriendBtn_Click);
            addCell.Controls.Add(addFriendBtn);
    }
事件:

  protected void addFriendBtn_Click(object sender, EventArgs e) 
        {
            LinkButton lnk = (LinkButton)sender;
            // do your coding
    }

除了Himadri的回答之外:


动态添加的控件需要在page init中重新布线。然后事件就会发生。我有一个非常类似的问题

补充到Himadri的回答中:


动态添加的控件需要在page init中重新布线。然后事件就会发生。我有一个非常类似的问题

请显示页面加载代码。它是空的:-O.受保护的无效页面加载(对象发送者,事件参数e){}请显示页面加载代码。它是空的:-O.受保护的无效页面加载(对象发送者,事件参数e){}我当然有一个事件处理程序:)。问题是它里面的代码从未开始运行。当然,我有一个事件处理程序:)。问题是它里面的代码从未开始运行。你是对的-我不是在页面加载中创建按钮,而是在另一个事件中创建。那我怎么修呢?我不理解您答案中的“if(!IsPostBack)”部分…您必须在Page_Init事件中创建按钮。具有iPostback我的意思是你必须在每次请求时重新创建按钮。通常,您只需初始化网格或类似对象一次—使用!IsPostback Check您是对的-我不是在页面加载中创建按钮,而是在另一个事件中创建按钮。那我怎么修呢?我不理解您答案中的“if(!IsPostBack)”部分…您必须在Page_Init事件中创建按钮。具有iPostback我的意思是你必须在每次请求时重新创建按钮。通常,您只需初始化网格或类似对象一次—使用!回邮支票