Asp.net 围绕用户控件的UpdatePanel
我有一个用户控件,其中包含一些按钮和占位符。这些按钮导致从占位符中添加/删除控件。一切正常 现在,我想将此用户控件放在一个页面中,并将其包装在updatepanel中,如下所示:Asp.net 围绕用户控件的UpdatePanel,asp.net,ajax,updatepanel,user-controls,Asp.net,Ajax,Updatepanel,User Controls,我有一个用户控件,其中包含一些按钮和占位符。这些按钮导致从占位符中添加/删除控件。一切正常 现在,我想将此用户控件放在一个页面中,并将其包装在updatepanel中,如下所示: <asp:UpdatePanel ChildrenAsTriggers="true" ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional"> <ContentTemplate>
<asp:UpdatePanel ChildrenAsTriggers="true" ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<grid:tablegrid ID="tablegrid_chapters" runat="server" SomeProperty="bar" />
</ContentTemplate>
</asp:UpdatePanel>
输出“EnablePartialRendering:true”确保页面中的
ScriptManager
上有EnablePartialRendering=true
更新
看起来您的UserControl没有要查找的事件…这里有2个选项。将UpdatePanel
移动到UserControl.ascx中,以便它可以将按钮事件作为子项来查看,或者添加一个事件供其查看,为此,请尝试以下操作:
public event EventHandler Click;
void btn_del_Click(object sender, EventArgs e)
{
if (NumberOfRowControls > 0)
{
var rowToWhack = panel_rows.Controls.Children().Single(x => x.ID == "myrow" + (NumberOfRowControls - 1));
panel_rows.Controls.Remove(rowToWhack);
NumberOfRowControls--;
}
if(Click != null) Click(this, e);
}
void btn_add_Click(object sender, EventArgs e)
{
var row = NewRow(NumberOfRowControls);
panel_rows.Controls.Add(row);
if(Click != null) Click(this, e);
}
并更新UpdatePanel以查找它:
<asp:UpdatePanel ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<grid:tablegrid ID="tablegrid_chapters" runat="server" SomeProperty="bar" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tablegrid_chapters" EventName="Click">
</Triggers>
</asp:UpdatePanel>
请确保在页面中添加ScriptManager,否则就没有UpdatePanel功能。您可以发布将控件添加到占位符的代码,并说明您单击的哪个控件会导致完全回发吗?这里有点长:-有一个占位符和两个按钮,按下任一按钮都会导致一个完整的postbacktw,上面我的示例中的“SomeProperty”是pastebin中的“UserControlPath”code@mgroves:您可以将aspx标记添加到其中吗?还有,你点击的是什么内容提供了完整的回发,btn_add
?我已经更新了下面的答案,希望这对你有用…如果没有,请在@reply或answer评论中告诉我,取得进展。现在它工作了,一次。我再次单击,发现一个javascript错误。@mgroves:太好了……如果您遇到另一个问题,请继续发表评论我会的——您帮了大忙,我希望我能给您更多的分数。没有ScriptManager将导致一个未描述的错误。
<asp:UpdatePanel ID="UpdatePanelFoo" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<grid:tablegrid ID="tablegrid_chapters" runat="server" SomeProperty="bar" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="tablegrid_chapters" EventName="Click">
</Triggers>
</asp:UpdatePanel>