0

DataPager コントロールを備えた ListView があります。一連の質問を表示しようとしています。各質問とその選択肢は、リストビューの項目に属しており、ページごとに 1 つの質問を表示しています。選択肢は、自動ポストバックが有効になっているラジオ ボタンです。ここで、最初の質問に対するユーザーの回答に基づいて、リストビュー内の残りの質問をフィルター処理して、ユーザーの選択に関連する質問のみを表示します。また、リストビューから他の質問を完全に削除したくありません。ユーザーが最初の質問に移動して応答を変更した場合、それに応じてリストを変更したいからです。無関係な質問を含むページを動的に非表示にする方法はありますか?

ありがとう。

注: リスト アイテムは、カスタム SQL クエリによって入力されます。 SELECT questionNumber,questionText,OptionA,OptionB,OptionC,OptionD,OptionE,OptionF,OptionG,OptionH,OptionI,OptionJ,OptionK,OptionL,Other,questionTag,subType from Questionairre

このクエリでは、フィールド「subType」にある値を、最初の質問で選択した値と比較する必要があります。最初の質問のサブタイプ フィールドはチェックされません。次のコードは、私がこれまでに持っているものです。変数「firstChoice」は、最初の質問からポストバックされた値を格納する静的変数です。

 protected void ListView_ItemDataBound(object sender, ListViewItemEventArgs e)
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

        ListViewDataItem di = (ListViewDataItem)e.Item;

        Label q=new Label();
        foreach(Control control in di.Controls)
        {

            if (control.GetType() == typeof(Label))
            {
                q = (Label)control;

                if (q.ID == "subType" && q.Text != firstChoice)
                    {
                        di.Visible = false;


                    }
            }
        }

    }
4

0 に答える 0