带有 Button / LinkButton 的 UpdatePanel 不起作用
UpdatePanel with Button / LinkButton doesnt work
我正在尝试使用按钮/link-按钮解决问题(两者都不起作用)。
问题如下:
我有一个导航菜单,用户可以在其中选择要重定向到的 "tab"(多视图视图)。在这个菜单中,我有一些按钮/link-按钮应该更新更新面板。
但它不会那样做 - 它总是更新整个页面。
我的一些 ASCX 代码:
<div class="row">
<label style="margin-left: 15px">Menu</label><br />
<div class="col-sm-4 col-md-3 sidebar">
<div class="mini-submenu">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</div>
<div class="list-group">
<span class="list-group-item active">Woundmanagement
<span class="pull-right" id="slide-submenu">
<i class="fa fa-times"></i>
</span>
</span>
<asp:Button ID="Button_1" runat="server" Text="Wundbeschreibung" CssClass="list-group-item" OnClick="nav_btn_1_Click" />
...
more items in the dropdownmenu
</div>...
点击按钮时触发的事件:
protected void nav_btn_1_Click(object sender, EventArgs e)
{
MultiView1.ActiveViewIndex = 1;
}
我现在搜索了 2 个小时并尝试了所有可能的解决方案 - 到目前为止我尝试的方法:
将按钮和菜单放在更新面板内外 - 不会改变问题
已添加 PostbackTrigger
<asp:PostBackTrigger ControlID="Button_1"/>
这样我的按钮就可以工作了,但页面仍然会重新加载
然后我添加了 asyncPostbackTrigger
<asp:AsyncPostBackTrigger ControlID="Button_1" EventName="Click"/>
如果我现在点击按钮,什么也不会发生。
我尝试将 UpdateMode 条件添加到 updatePanel
<asp:ScriptManager ID="ScriptManager1" runat ="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UP_Woundmanagement" runat="server"
UpdateMode="Conditional">
我把<Triggers>
移到了updatePanel前面和updatePanel后面
我在页面指令中添加了ClientIDMode="AutoID"
用 LinkButton 尝试了同样的事情
我真的不知道我还能做些什么来让它发挥作用,如果你们中有人有想法就太好了! :)
我不明白你为什么不分享你的 updatepanel aspx 代码。在更新面板内触发标签,而不是在它之前或之后。
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Refreshed at " + DateTime.Now.ToString();
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Panel created."></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
如果触发器对象将在 UpdatePanel 内部,您应该将 ChildrenAsTrigger 设置为 true。如果您的更新面板位于 ContentPlaceHolder 中,那么本文将对您有用。 https://msdn.microsoft.com/tr-tr/library/bb398864(v=vs.100).aspx
我正在尝试使用按钮/link-按钮解决问题(两者都不起作用)。 问题如下:
我有一个导航菜单,用户可以在其中选择要重定向到的 "tab"(多视图视图)。在这个菜单中,我有一些按钮/link-按钮应该更新更新面板。 但它不会那样做 - 它总是更新整个页面。
我的一些 ASCX 代码:
<div class="row">
<label style="margin-left: 15px">Menu</label><br />
<div class="col-sm-4 col-md-3 sidebar">
<div class="mini-submenu">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</div>
<div class="list-group">
<span class="list-group-item active">Woundmanagement
<span class="pull-right" id="slide-submenu">
<i class="fa fa-times"></i>
</span>
</span>
<asp:Button ID="Button_1" runat="server" Text="Wundbeschreibung" CssClass="list-group-item" OnClick="nav_btn_1_Click" />
...
more items in the dropdownmenu
</div>...
点击按钮时触发的事件:
protected void nav_btn_1_Click(object sender, EventArgs e)
{
MultiView1.ActiveViewIndex = 1;
}
我现在搜索了 2 个小时并尝试了所有可能的解决方案 - 到目前为止我尝试的方法:
将按钮和菜单放在更新面板内外 - 不会改变问题
已添加 PostbackTrigger
<asp:PostBackTrigger ControlID="Button_1"/>
这样我的按钮就可以工作了,但页面仍然会重新加载
然后我添加了 asyncPostbackTrigger
<asp:AsyncPostBackTrigger ControlID="Button_1" EventName="Click"/>
如果我现在点击按钮,什么也不会发生。
我尝试将 UpdateMode 条件添加到 updatePanel
<asp:ScriptManager ID="ScriptManager1" runat ="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UP_Woundmanagement" runat="server" UpdateMode="Conditional">
我把
<Triggers>
移到了updatePanel前面和updatePanel后面我在页面指令中添加了
ClientIDMode="AutoID"
用 LinkButton 尝试了同样的事情
我真的不知道我还能做些什么来让它发挥作用,如果你们中有人有想法就太好了! :)
我不明白你为什么不分享你的 updatepanel aspx 代码。在更新面板内触发标签,而不是在它之前或之后。
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "Refreshed at " + DateTime.Now.ToString();
}
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Panel created."></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
如果触发器对象将在 UpdatePanel 内部,您应该将 ChildrenAsTrigger 设置为 true。如果您的更新面板位于 ContentPlaceHolder 中,那么本文将对您有用。 https://msdn.microsoft.com/tr-tr/library/bb398864(v=vs.100).aspx