Asp.net UpdatePanel按钮事件未触发的位置
我有一个包含PlaceHold的UpdatePanel。我创建了一些带有标签和按钮的控件,单击按钮时会触发一个事件,清除占位符并添加一些文本框和带有事件的按钮。 问题是,当单击此按钮时,它似乎会执行回发,并且不会触发与该按钮关联的事件。我认为,由于这些控件都包含在UpdatePanel中,因此不会进行回发,我是否错过了流程Asp.net UpdatePanel按钮事件未触发的位置,asp.net,ajax,updatepanel,Asp.net,Ajax,Updatepanel,我有一个包含PlaceHold的UpdatePanel。我创建了一些带有标签和按钮的控件,单击按钮时会触发一个事件,清除占位符并添加一些文本框和带有事件的按钮。 问题是,当单击此按钮时,它似乎会执行回发,并且不会触发与该按钮关联的事件。我认为,由于这些控件都包含在UpdatePanel中,因此不会进行回发,我是否错过了流程 <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<%--<%@ Register assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" namespace="System.Web.DynamicData" tagprefix="cc1" %>
--%>
<div id="content" > <!--start content div-->
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<br />
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<br />
<asp:UpdatePanel ID="upBlog" runat="server" UpdateMode="Conditional">
<ContentTemplate >
<asp:PlaceHolder ID="phBlog" runat="server"></asp:PlaceHolder>
</ContentTemplate>
<Triggers >
<%-- <asp:AsyncPostBackTrigger EventName="Click" ControlID = "btnSave" />--%>
</Triggers>
</asp:UpdatePanel>
<br />
</div> <!--ends content div-->
</asp:Content>
UpdatePanel仍然进行回发。单击按钮时,整个页面生命周期将重复,因此将再次执行页面初始化和页面加载(例如)。AJAX不会删除邮箱,只是对客户端隐藏它 我看不出你发布的代码有什么问题,但是我建议你在页面的起始处放置一个断点。这将能够告诉您回发是否实际发生,因为如果按钮确实试图触发button click事件,就会触发回发。请记住,任何单击事件都是在页面生命周期完成后触发的(理论上)
在第二次查看时,我建议您将FirstView()方法中的按钮事件更改为单击,而不是命令,并查看这是否会触发事件。在将控件添加到另一个容器之前,最好将任何事件添加到控件中 其次,参数名为“btnCommentSave”的按钮将不起作用。在OnInit、OnLoad事件中必须小心。这是服务器客户端的问题。从服务器推送到客户端的页面不包含“btnCommentSave”按钮,因此此按钮保留在客户端页面上,但不起作用 btnComments是有效的,因为它是在UpdatePanel的OnLoad函数中推送到客户机之前由服务器呈现的
加载函数后呈现的内容不起作用。能否发布标记示例?请提供解决方案、代码等。如何克服此问题。请看一看你是否能回答
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
FirstView();
}
protected void Page_Load(object sender, EventArgs e)
{
}
private void FirstView()
{
FileStream fs = new FileStream(Server.MapPath(GlobalVar.compathver), FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
DataSet dset = new DataSet();
dset.ReadXml(fs);
fs.Close();
//other controls
Button btnComments = new Button();
btnComments.ID = "mybtnComments" + i.ToString();
btnComments.BorderWidth = 0;
btnComments.Text = MyFunc.CountComments(row["ID"].ToString(), dset) + " Comments";
phBlog.Controls.Add(btnComments);
btnComments.CommandArgument = row["ID"].ToString();
btnComments.BorderWidth = 0;
btnComments.Command += new CommandEventHandler(Button1_Click)
}
private void CommentView(string ID) /// THIS DOES not FIRE
{
DataView myCommentView = GetCommentView(ID);
Button btnCommentSave = new Button();
btnCommentSave.ID = "mySavebtnComments" + i.ToString();
btnCommentSave.Text = "Publish";
btnCommentSave.BackColor = Color.Aquamarine;
phBlog.Controls.Add(btnCommentSave);
btnCommentSave.CommandArgument = row["ID"].ToString();
btnCommentSave.Click += new EventHandler(btnSave_Click);
}
protected void Button1_Click(object sender, CommandEventArgs e)
{
CommentView(e.CommandArgument.ToString());
}
protected void btnSave_Click(object sender, EventArgs e)
//protected void btnSave_Click(object sender, CommandEventArgs e)
{
FileStream fsxml = new FileStream(Server.MapPath(GlobalVar.compathver), FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite);
//other code
// XML Document Saved
xmldoc.Save(fsxml);
}