2

私の古典的なaspアプリには、たくさんのチェックボックスがあるマークアップページがあります。チェックボックスコントロールIDはbscvです。

ユーザーがチェックボックスをオンにして[送信]をクリックすると、値はnext.aspという次のページで処理されます。

チェックボックスの値に基づいて、正しいドロップダウンを表示します。

next.aspで次のコードを使用して、正しいドロップダウンを表示します。

If bsvc = "master" Then
    ' only master was checked
    ' "If the user checks only master checkbox, ...txtmaster with 2 options... is displayed."

%>
<select id="txtmaster" name="txtmaster">
        <option value="">-Select a service-</option>
        <option value="1">1</option>
        <option value="2">2</option>
     </select>
<%
Elseif InStr(bsvc, "master") > 0 Then
    ' Master was checked, but something else was also checked
    ' display txtmaster with all 7 options dropdowon 1 and 2       

%>
 <select id="txtmaster" name="txtmaster">
        <option value="">-Select a service-</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
     </select>
<%
Elseif Len(bsvc) > 0 Then
    ' something was checked, but not master
    ' " display only dropdown with 3 to 7 ."

%>
<select id="txtmaster" name="txtmaster">
          <option value="">-Select a service-</option>
           <option value="3">3</option>
          <option value="4">4</option>
          <option value="4">5</option>
          <option value="5">5</option>
          <option value="6">6</option>
              <option value="7">7</option>
  </select>

<%
Else
    Response.Write "Error: You did not check any business serviced"
End If
%>

これはうまくいきます。

現在、asp.netでマルチビューを使用しており、同じことを達成しようとしています。

view1には、チェックボックスがあります。[次へ]をクリックすると、チェックボックスの値に基づいて正しいドロップダウンリストが表示されます。

上記のコードと同様のことをどのように達成できますか?

よろしくお願いします。

4

2 に答える 2

2

1つのアプローチは、あなたが持っているものと非常に似ています...

マークアップでを使用<asp:checkboxlist>します。

次に、送信ボタンのオンクリック イベントについて、チェックボックス リストで見つけたチェック済みの値に基づいて、ドロップダウン リストの「visible」プロパティを true または false に設定できます。

または、いくつかのlistitemオブジェクトを宣言し、 を 1 つだけ持ち、 からチェックされた値に基づいてdropdownlist追加/削除することもできます。listitemcheckboxlist

For each myItem as listitem in myCheckboxlist
if ctype(myItem, checkox).checked then...

とにかくその考えに沿った何か

于 2012-06-18T20:38:14.440 に答える
1

Multiview を使用したことがないので、完全に的外れである場合はご容赦ください。しかし、ビュー 1 のコントロールは直接利用できるように見えます。マルチビューを使用しているため、実際にページを離れることはなく、ポストバックしてアクティブ ビューを変更するだけです。そのため、ビュー 1 (またはその他のビュー) のすべてのコントロールには引き続きアクセスできます。

チェックボックスを直接参照できない場合、たとえばチェックボックスが動的 (データバインドなど) の場合は、View1.FindControl などを使用できるはずです。

何か不足していますか?

'View1 contains three CheckBoxes and ButtonNext.
'View2 contains three DropDownLists and ButtonBack.

Protected Sub ButtonNext_Click(sender As Object, e As EventArgs) Handles ButtonNext.Click
    SetListVisibility()
    MultiView1.SetActiveView(View2)
End Sub

Protected Sub ButtonBack_Click(sender As Object, e As EventArgs) Handles ButtonBack.Click
    MultiView1.SetActiveView(View1)
End Sub

Private Sub SetListVisibility()
    If CheckBox1.Checked Then
        If CheckBox2.Checked Or CheckBox3.Checked Then
            DropDownList1.Visible = False
            DropDownList2.Visible = False
            DropDownList3.Visible = True
        Else
            DropDownList1.Visible = True
            DropDownList2.Visible = False
            DropDownList3.Visible = False
        End If
    Else
        DropDownList1.Visible = False
        DropDownList2.Visible = True
        DropDownList3.Visible = False
    End If
End Sub
于 2012-06-18T22:54:30.897 に答える