langkah yang harus di lakukan adalah memasukan contol ke UI kita dan menambahkan dropdown template didalam ASPxDropDownEdit kita.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <body> <form id="form1" runat="server"> <!--berikan instance name agar dapat dikenali di javascript--> <dx:ASPxDropDownEdit ID="ASPxDropDownEdit1" runat="server" ClientInstanceName="checkComboBox"> <DropDownWindowTemplate> <dx:ASPxListBox Width="100%" ID="listBox" ClientInstanceName="checkListBox" SelectionMode="CheckColumn" runat="server"> <!--berikan perintah apabila selected indexnya berubah--> <ClientSideEvents SelectedIndexChanged="OnListBoxSelectionChanged" /> </dx:ASPxListBox> </DropDownWindowTemplate> </dx:ASPxDropDownEdit> </form> </body> |
selanjutnya adalah mengisi listbox nya dengan data yang kita mau, hal itu kita lakukan pada code behind form yang sedang dikerjakan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | public partial class WebForm1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // membuat wadah listdata List<ItemData> data = new List<ItemData>(); for (int i = 0; i < 100; i++) { // membuat isi data dengan object itemdata data.Add(new ItemData(i.ToString())); } //mencari listbox, yang ada di dalam dropdown template dari aspxdropdownedit1 ASPxListBox lstbx = (ASPxListBox)ASPxDropDownEdit1.FindControl("listbox"); lstbx.DataSource = data; lstbx.TextField = "RegionName"; lstbx.ValueField = "RegionName"; lstbx.DataBind(); } } //object data public class ItemData { string regionName; public ItemData(string regionName) { this.regionName = regionName; } public string RegionName { get { return regionName; } } } |
sampai disini sudah dapat terlihat bahwa dropdown akan terisi checkbox sebanyak 100 buah, langkah selanjutnya adalah memasukan pilihan ke dalam kolom terpilih dari aspxdropdownedit tersebut dengan bantuan javascript.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | <script type="text/javascript"> // <![CDATA[ var textSeparator = ", "; function OnListBoxSelectionChanged(listBox, args) { if (args.index == 0) args.isSelected ? listBox.SelectAll() : listBox.UnselectAll(); UpdateSelectAllItemState(); UpdateText(); } function UpdateSelectAllItemState() { IsAllSelected() ? checkListBox.SelectIndices([0]) : checkListBox.UnselectIndices([0]); } function IsAllSelected() { var selectedDataItemCount = checkListBox.GetItemCount() - (checkListBox.GetItem(0).selected ? 0 : 1); return checkListBox.GetSelectedItems().length == selectedDataItemCount; } function UpdateText() { var selectedItems = checkListBox.GetSelectedItems(); checkComboBox.SetText(GetSelectedItemsText(selectedItems)); } function SynchronizeListBoxValues(dropDown, args) { checkListBox.UnselectAll(); var texts = dropDown.GetText().split(textSeparator); var values = GetValuesByTexts(texts); checkListBox.SelectValues(values); UpdateSelectAllItemState(); UpdateText(); // for remove non-existing texts } function GetSelectedItemsText(items) { var texts = []; for (var i = 0; i < items.length; i++) if (items[i].index != 0) texts.push(items[i].text); return texts.join(textSeparator); } function GetValuesByTexts(texts) { var actualValues = []; var item; for (var i = 0; i < texts.length; i++) { item = checkListBox.FindItemByText(texts[i]); if (item != null) actualValues.push(item.value); } return actualValues; } </script> |
No comments:
Post a Comment