1

これは、誰も答えられないのではないかと心配している質問の 1 つですが、聞いても害はありません。

UpdatePanels私の ASP.NET ページにはたくさんあります。ユーザーが特定のフィールドに値を入力すると、それに応じて他のコントロールが有効または無効になります。これまでのところ、追加した各パネルは問題なく機能しています。

RadioButtonListはい、いいえ、不明の 3 つのオプションがあります。ユーザーが [はい] を選択すると、テキストボックスUpdatePanelが有効になります。実際に起こるのは、更新されることです...時々。パターンは、ページの読み込み時に選択されているオプションが、オプションを別のものに変更してから再び元に戻した場合にRadioButtonListトリガーされないものであるようです。UpdatePanelたとえば、ページが読み込まれ、[不明] が選択されている場合、選択を [はい] または [いいえ] に変更すると、テキスト ボックスをクリックしたい回数だけ正しく有効または無効にできますが、選択を [不明] に変更しても、テキスト ボックスは無効になりません。私が言ったように、そのパターンは、ページが読み込まれるときに選択された値がどれであっても当てはまります。

見知らぬ人はまだ、更新をトリガーしない値を選択し、別の のトリガーであるまったく無関係なコントロールの値を変更するとUpdatePanel、その 2 番目のパネルが更新され、失敗した最初のパネルも変更されます。その時まで更新します。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
4

1 に答える 1