0

ユーザーがそこから複数のアイテムを選択できるリストボックスがありますが、これらの複数の選択されたアイテムをオブジェクト データ ソースの選択パラメーターに渡す必要があります。これにより、レポート ビューアー レポートのクエリが開始されます。

これで、選択した 1 つのアイテムに対しては簡単に機能させることができますが、複数のアイテムに対して機能させるにはどうすればよいでしょうか?

ありがとう

4

1 に答える 1

0

これは古い投稿ですが、他の人に役立つかもしれません。ListItemCollection はシリアル化できないため、Items プロパティを ControlParameter として使用できません。

私を満足させないいくつかの解決策を読んだ後、私は ListBox クラスを次のように拡張しました。

[ToolboxData("<{0}:ListBoxExtended runat=server></{0}:ListBoxExtended>")]
public class ListBoxExtended : ListBox
{
    public IEnumerable<string> SelectedValues
    {
        get
        {
            var results = new List<String>();
            if (SelectionMode == ListSelectionMode.Single)
            {
                results.Add(SelectedValue);
            }
            else
            {                    
                foreach (ListItem item in Items)                    
                    if (item.Selected)
                        results.Add(item.Value);                    
            }
            return results;
        }
    }

}

これで、ObjectDatasource の ControlParameter で SelectedValues 新しいプロパティを使用できます。

ListBoxExtended 名前空間とアセンブリを .aspx に登録することを忘れないでください

<%@ Register Assembly="MyExtendedControls" 
             Namespace="MyControls" TagPrefix="custom" %>

そして、次のものに置き換え<aspnet:Listbox ...>ます。

<custom:ListBoxExtended  ... > ... </custom:ListBoxExtended>
于 2014-06-12T17:40:00.247 に答える