这是我担心没有人能够回答的问题之一,但问没有坏处!
UpdatePanels
我的ASP.NET 页面上有很多内容。当用户在特定字段中输入值时,其他控件会相应地启用或禁用。到目前为止,我添加的每个面板都运行良好,直到现在。
我有RadioButtonList
三个选项 - 是、否和未知。如果用户选择是,UpdatePanel
则应启用 an 中的文本框。实际发生的是它会更新......有时。该模式似乎是页面加载时选择的任何一个选项,如果您将选项更改为其他选项然后再次返回,则RadioButtonList
不会触发该选项。UpdatePanel
例如,如果页面加载并选择了 Unknown,则将选择更改为 Yes 或 No 会正确启用和禁用文本框,只要您愿意单击它们,但将选择更改为 Unknown 不会像应有的那样禁用文本框。就像我说的那样,无论页面加载时选择的值是什么,该模式都适用。
更奇怪的是,如果我选择了不应该触发更新的值,然后在一个完全不相关的控件中更改该值,这是一个不同的触发器UpdatePanel
,当第二个面板更新时,第一个失败的面板也是如此更新到那个时候。尽管我所有的人updatepanels
都设置为条件更新模式。
我在下面展示了我的代码。希望有人能指出我正确的方向!
<tr class="grouprow">
<td>Non-Abdominal Surgery In Last 6 Months?</td>
<td><asp:RadioButtonList ID="rblRecentNonAbdominalSurgery" runat="server" RepeatDirection="Horizontal" SelectedValue='<%# Bind("AdmissionRecentNonAbdominalSurgery")%>'
CssClass="bottommargin" AutoPostBack="true" OnSelectedIndexChanged="rblRecentNonAbdominalSurgery_SelectedIndexChanged" ClientIDMode="AutoID" >
<asp:ListItem Text="Unknown" Value="" />
<asp:ListItem Text="Yes" Value="True" />
<asp:ListItem Text="No" Value="False" />
</asp:RadioButtonList></td>
</tr>
<tr class="grouprow">
<td>Non-Abdominal Surgery Description</td>
<td><asp:UpdatePanel ID="updRecentNonAbdominalSurgery" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="rblRecentNonAbdominalSurgery" EventName="SelectedIndexChanged" />
</Triggers>
<ContentTemplate>
<asp:TextBox ID="txtRecentNonAbdominalSurgeryDescription" runat="server" Text='<%# Bind("AdmissionRecentNonAbdominalSurgeryDescription")%>' TextMode="MultiLine"
Rows="4" CssClass="multilinetextbox bottommargin" />
</ContentTemplate>
</asp:UpdatePanel></td>
</tr>
以及背后的代码:
Dim rblPreviousColicSurgery As RadioButtonList = fvPreviousColic.FindControl("rblPreviousColicSurgery")
If rblPreviousColicSurgery.SelectedItem.Text = "Yes" Then
txtPreviousColicSurgeryDescription.Enabled = True
Else
txtPreviousColicSurgeryDescription.Enabled = False
End If