我有一个生成更新面板的页面,如下所示:
foreach(DataRow r in GetSteps(ID).Rows)
{
UpdatePanel StepPanel = new UpdatePanel();
StepPanel.ID = "stepPanel_" + r["StepID"].ToString();
StepPanel.ContentTemplateContainer.Controls.Add(GenerateInnerPanel(r));
StepHolder.Controls.Add(StepPanel);
}
这将生成所有UpdatePanel并将其添加到我的页面上的占位符:
<asp:PlaceHolder ID="StepHolder" runat="server"></asp:PlaceHolder>
每个UpdatePanel内部都是一个可点击的面板,它调用这个javascript函数:
function StepClick(sender, stepID){
__doPostBack(sender.ID, stepID);
}
javascript发回,然后检查发件人并在页面加载时向点击的更新面板添加一些详细信息。
我遇到的问题是,点击更新面板中的某个div会导致完整的回发,而不仅仅是回发包含更新面板的内容。我在哪里设置更新面板只回发自己而不是整页?也许它甚至不是一个设置,在这种情况下我该怎么做?
非常感谢你的帮助!
答案 0 :(得分:1)
将updatemode设置为条件并将div设置为触发器或设置ChildrenAsTriggers = true。
另外,请确保您在ASPX页面中放置了scriptmanager。您可以通过这种方式同时调用服务器端功能。