ComboBox
概要
機能
サンプル
設定
説明
このサンプルは、ComboBox コントロールの基本的な使用方法を示します。
CaseSensitiveSearch プロパティをtrueに設定した場合、検索では大文字と小文字が区別されます。
HandleWheelプロパティがtrueに設定されている場合、ユーザーがマウスホイールで現在選択されている項目を変更できます。
VirtualizationThresholdプロパティを使用すると、仮想化を有効または無効にできます。このプロパティのデフォルト値は非常に大きい数値であり、仮想化が無効になっていることを意味します。仮想化を有効にするには、値を0または正の数に設定します。ComboBoxに多数のアイテム(たとえば1,000程度)が含まれている場合に、視覚化はパフォーマンスに大きな影響を与えます。
CaseSensitiveSearch プロパティをtrueに設定した場合、検索では大文字と小文字が区別されます。
HandleWheelプロパティがtrueに設定されている場合、ユーザーがマウスホイールで現在選択されている項目を変更できます。
VirtualizationThresholdプロパティを使用すると、仮想化を有効または無効にできます。このプロパティのデフォルト値は非常に大きい数値であり、仮想化が無効になっていることを意味します。仮想化を有効にするには、値を0または正の数に設定します。ComboBoxに多数のアイテム(たとえば1,000程度)が含まれている場合に、視覚化はパフォーマンスに大きな影響を与えます。
ソース
IndexController.cs
using MvcExplorer.Models;
using System.Collections.Generic;
using System.Web.Mvc;
namespace MvcExplorer.Controllers
{
public partial class ComboBoxController : Controller
{
private readonly ControlOptions _optionModel = new ControlOptions
{
Options = new OptionDictionary
{
{"Case Sensitive Search",new OptionItem{ Values = new List<string> { "True", "False"}, CurrentValue = "False"}},
{"Handle Wheel",new OptionItem{ Values = new List<string> { "True", "False"}, CurrentValue = "True"}},
{"Virtualization Threshold",new OptionItem{ Values = new List<string> { "Disable" , "0" }, CurrentValue = "Disable"}}
}
};
public ActionResult Index(FormCollection collection)
{
IValueProvider data = collection;
_optionModel.LoadPostData(data);
ViewBag.DemoOptions = _optionModel;
ViewBag.Countries = Countries.GetCountries();
ViewBag.Cities = Cities.GetCities();
return View();
}
}
}
Index.cshtml
@{
List<string> countries = ViewBag.Countries;
List<string> cities = ViewBag.Cities;
ControlOptions optionsModel = ViewBag.DemoOptions;
ViewBag.DemoSettings = true;
string vThreshold = optionsModel.Options["Virtualization Threshold"].CurrentValue;
}
<div>
<label>@Html.Raw(Resources.ComboBox.Index_NonEditable)</label>
@(Html.C1().ComboBox().Bind(countries)
.SelectedIndex(0).IsEditable(false)
.CaseSensitiveSearch(Convert.ToBoolean(optionsModel.Options["Case Sensitive Search"].CurrentValue))
.HandleWheel(Convert.ToBoolean(optionsModel.Options["Handle Wheel"].CurrentValue))
.VirtualizationThreshold(vThreshold.Equals("Disable") ? int.MaxValue : int.Parse(vThreshold)))
</div>
<div>
<label>@Html.Raw(Resources.ComboBox.Index_Editable)</label>
@(Html.C1().ComboBox().Bind(cities)
.SelectedIndex(0).IsEditable(true)
.CaseSensitiveSearch(Convert.ToBoolean(optionsModel.Options["Case Sensitive Search"].CurrentValue))
.HandleWheel(Convert.ToBoolean(optionsModel.Options["Handle Wheel"].CurrentValue))
.VirtualizationThreshold(vThreshold.Equals("Disable") ? int.MaxValue : int.Parse(vThreshold)))
</div>
@section Settings{
@Html.Partial("_OptionsMenu", optionsModel)
}
@section Description{
@Html.Raw(Resources.ComboBox.Index_Text0)
<br />
@Html.Raw(Resources.ComboBox.CaseSensitiveSearchDescription_Text0)
<br />
@Html.Raw(Resources.ComboBox.HandleWheelDescription_Text0)
<br />
@Html.Raw(Resources.ComboBox.Index_Text1)
}
マニュアル