1

これは私のソートロジックのアルファベット順です

  string selectedVal = lstSelectionTags.SelectedValue;
        SortedList sortedItems = new SortedList();
        for (int i = 0; i < lstSelectionTags.Items.Count; i++)
        {
            sortedItems.Add(lstSelectionTags.Items[i].Text, lstSelectionTags.Items[i].Value);
        }
        lstSelectionTags.Items.Clear();
        lstSelectionTags.DataSource = sortedItems;
        lstSelectionTags.DataTextField = "key";
        lstSelectionTags.DataValueField = "value";
        lstSelectionTags.DataBind();

以下のコードを使用してリストボックスにアイテムを初めて表示するとき

   string valueField = Convert.ToString(lstSelectionSub.SelectedItem);
            int catID = Convert.ToInt32(lstSelectionSub.SelectedValue);
            util = new Utilities();
            dt1 = util.GetSubTags_PD(catID, false);
            string[] lines = new string[100];
            List<string> lines1 = new List<string>();

            for (int i = 0; i < dt1.Rows.Count; i++)
            {
                string s1 = dt1.Rows[i][0].ToString();

                if (s1 != "")
                {
                    lines = Regex.Split(s1, ",");

                    if (!lines1.Contains(lines.ToString()))
                    {
                        lines1.AddRange(lines);
                    }
                }
            }

            lstSelectionTags.DataSource = lines1.Distinct();

            lstSelectionTags.DataBind();

最初は正常に動作し、データを表示しますが、並べ替えを行ってから値にアクセスしようとすると、値が取得されませんListBox

編集:リストボックスを並べ替えた後、並べ替えに問題があるようです。DataValue および DataText フィールドとしてキーと値がありますが、再バインドすると、DataValue および DataText フィールドはありません。助けてください。

解決した問題:使用したばかり

                if (lines1.Count > 0)
                {
                    lstSelectionTags.DataSource = null;
                    lstSelectionTags.Items.Clear();

                    lstSelectionTags.DataSource = lines1.Distinct();

                    lstSelectionTags.DataTextField = null;
                    lstSelectionTags.DataValueField = null;
                    lstSelectionTags.DataBind();
                }
4

0 に答える 0