我遇到了asp:UpdatePanel和ASP.NET WebForms的触发器。触发器无法在我的UpdatePanel上找到该事件。我已经看过很多例子,我复制了他们的实现,但是无法正确实现。我是WebForms的新手。请帮忙。谢谢。
<tr>
<td class="label1">Will use ETL?</td>
<td>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel1">
<ContentTemplate>
<asp:RadioButtonList ID="useEtl" runat="server" RepeatDirection="Horizontal" Width="120" OnSelectedIndexChanged="useEtl_SelectedIndexChanged">
<asp:ListItem Text="Yes" Value="1" />
<asp:ListItem Text="No" Value="0" />
</asp:RadioButtonList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td class="label1">ETL Box</td>
<td>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel2">
<ContentTemplate>
<asp:TextBox ID="etlBox" runat="server"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="useEtl" EventName="OnSelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>
答案 0 :(得分:6)
按如下方式更改您的代码:
<asp:AsyncPostBackTrigger ControlID="useEtl" EventName="SelectedIndexChanged" />
您提到的事件名称是错误的,这是不工作的原因。
您也可以尝试使用以下代码进行相同的
UpdatePanel1.Triggers.Add(new AsyncPostBackTrigger()
{
ControlID = useEtl,
EventName = "SelectedIndexChanged", // this may be optional
}
答案 1 :(得分:0)
td>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel1">
<ContentTemplate>
<asp:RadioButtonList ID="useEtl" runat="server" RepeatDirection="Horizontal" AutoPostBack="true" Width="120" OnSelectedIndexChanged="useEtl_SelectedIndexChanged">
<asp:ListItem Text="Yes" Value="1" />
<asp:ListItem Text="No" Value="0" />
</asp:RadioButtonList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
<td class="label1">ETL Box</td>
<td>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updatePanel2">
<ContentTemplate>
<asp:TextBox ID="etlBox" runat="server" Enabled="false"/>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="useEtl" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</td>