当前位置: 首页 > 面试题库 >

通过不同ContentPlaceHolder中的控件触发UpdatePanel的更新

呼延智明
2023-03-14
问题内容

我有一个包含两个ContentPlaceHolders的页面。一个具有DropDown,另一个具有内容的UpdatePanel。

当它们位于不同的ContentPlaceholders中时,如何通过DropDown的selectedItemChanged事件触发对UpdatePanel的更新?

由于UpdatePanel1不了解DropDown1,因此以下操作无效:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"  ChildrenAsTriggers="true">
    <ContentTemplate>
        Some content that needs to be updated here...
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" />
    </Triggers>
</asp:UpdatePanel>

一种方法是制作一个Ajax页面方法,当选择DropDown的项目时,该页面上的javascript将调用该方法。然后在该页面方法内的后面代码中,调用UpdatePanel1.Update()。

有没有更简单的选择?


问题答案:

来自http://msdn.microsoft.com/zh-
cn/library/system.web.ui.asyncpostbacktrigger.aspx

AsyncPostBackTrigger引用的控件必须与作为触发器的更新面板位于同一命名容器中。不支持基于其他命名容器中的控件的触发器。

解决方法是使用触发器所引用的控件的UniqueID。不幸的是,直到将控件添加到其父级(并且其父级一直添加到其父级,一直到控件树的顶部)之前,UniqueID才合格。

在后面的代码中,尝试:

UpdatePanel1.Triggers.Add(new AsyncPostBackTrigger()
{
    ControlID = DropDown1.UniqueID,
    EventName = "SelectedIndexChanged", // this may be optional
});


 类似资料:
  • 问题内容: 考虑以下代码: 该按钮将触发面板更新。我想通过按下搜索字段来触发更新,所以我用单击按钮的jQuery语句“伪造”了它。我想知道…一定有更好的方法吧…! 问题答案: 您可以执行以下操作来刷新您的更新面板,而无需单击按钮: 您只需要给您的updatepanel一个ID(此处为updatePanel) 在键入命令或准备就绪时执行该代码。

  • 问题内容: 我有一个更新面板,其中将Conditional和ChildrenAsTriggers的UpdateMode设置为false。我只希望一些控件引起异步回发: 尝试加载此页面时出现以下错误: 由于我的btnAddSomething控件位于转发器中,可能不会立即存在,因此它的行为就好像它不存在一样。我该如何解决? 问题答案: 因为您的控件在中,并且不在的范围内。顺便说一下,您不需要,因为您的

  • 问题内容: 我有一个复合下拉日历用户控件,其中包括一个文本框和日历图像以及一个验证控件。我在用户控件上公开了一个名为“ TextBox”的属性,该属性返回对该控件内使用的文本框的引用。这是用户在其中输入日期的文本框。 在ASPX页面中,我有一个此usercontrol的实例: 在后面的代码中,我想检测用户何时跳出文本框,并使用UpdatePanel根据指定的日期引用适当的消息。 在ASPX页面的其

  • 问题内容: 我试图让一个TextBox在每次击键时触发它的onTextChanged事件,而不是仅在失去焦点时才触发。我以为添加AsyncPostBackTrigger可以做到这一点,但仍然无法正常工作。我要做什么甚至有可能吗?代码如下: 问题答案: 使用javascript引发文本框控件时,您需要调用该函数。 但是,由于您的文本框位于更新面板中,因此,每当用户按下某个键时,该文本框都会重新呈现,

  • 我通过jira触发器插件将jenkins作业设置为触发器<但是jenkins作业没有被触发,尽管它从JIRA那里获得了webhook事件。 我检查了如下内容。 Jenkins得到了网络钩子事件。我在詹金斯日志上检查了这个。 我试着为詹金斯设置各种方式,但都失败了。我想知道如何设置jira触发器 > 测试环境 吉拉:6.4.11 我的测试用例是。。。 Jenkins工作设置 选中:向JIRA添加注释

  • 问题内容: 我有一个触发器,我正尝试使用它来更新它侦听的同一张表。 但是,提交创建或更新后,出现以下错误: 感谢您的帮助! 问题答案: 您正在更新触发器已写入的同一表。您需要这样的东西: