单击用户控件内的按钮时,似乎没有执行其事件(按钮单击) 我只想重新加载更新面板,此用户控件在此按钮单击事件中获取新效果
我在更新面板中的html控件上添加了用户控件,如下所示
<!-- language: c# -->
content.Controls.Remove(content.FindControl("currentusercontrol"));
UserControl usr1 = (UserControl)LoadControl("myusercontrol.ascx");
usr1.ID = "currentusercontrol";
content.Controls.Add(usr1);
这是我的父页面内容
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="True"> </asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" OnLoad="UpdatePanel1_Load" OnPreRender="UpdatePanel1_PreRender">
<ContentTemplate>
<div id="content" class="content" runat="server">
<!-- begin breadcrumb -->
<!-- end breadcrumb -->
<!-- begin page-header -->
<h1 class="page-header" runat="server" id="pageheader">Dashboard v2 <small id="smallheader" runat="server">header small text goes here...</small></h1>
<!-- end page-header -->
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
这是我的用户控制页面
<%@ Control Language="C#" ClassName="Contact_Us" %>
<%@ Import Namespace="System.Threading" %>
<script runat="server">
private void Button1_OnClick(object sender, EventArgs e)
{
Thread.Sleep(5000);
Label1.Text = "lion";
}
</script>
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server" ></asp:ScriptManagerProxy>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" CssClass="btn btn-primary" Text="Submit" OnClick="Button1_OnClick" />
我试试这个,但它不起作用
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
我试图将触发器直接放到更新面板但是我有错误,因为按钮处于用户控制状态,因此我无法控制此ID,因此我尝试将触发器以编程方式放在用户控件加载事件上 喜欢这个
UpdatePanel UpdatePanel1 = this.Parent.FindControl("UpdatePanel1") as UpdatePanel;
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = Button1.ID;
trigger.EventName = "Click";
UpdatePanel1.Triggers.Add(trigger);
但我有同样的错误 UpdatePanel'UpdatePanel1'中的触发器无法找到ID为“Button1”的控件。
然后就像这样使用button1的客户端ID
trigger.ControlID = Button1.ClientID;
同样的问题
在UpdatePanel'UpdatePanel1'中找不到ID为'currentusercontrol_Button1'的控件。
答案 0 :(得分:0)
在按钮单击时修改更新面板中的内容(通过asp标签ID&#39; s),然后调用UpdatePanel1.Update();
http://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx
答案 1 :(得分:0)
我发现它只是把这个代码放在updatepanel加载中,一切都很顺利
content.Controls.Remove(content.FindControl("currentusercontrol"));
UserControl usr1 = (UserControl)LoadControl("myusercontrol");
usr1.ID = "currentusercontrol";
content.Controls.Add(usr1);