lightswitch datagrid 動態新增複選框的功能。
lightswitch中非自定義datagrid 使用注入的方式新增複選框,以便使用者可以進行多項選擇,
using Microsoft.LightSwitch; using Microsoft.LightSwitch.Client; using Microsoft.LightSwitch.Presentation; using System; using System.Linq; using System.Collections.ObjectModel; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Ink; using System.Windows.Input; using System.Windows.Markup; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.LightSwitch.Framework.Client; using Microsoft.LightSwitch.Presentation.Extensions; using System.Diagnostics; using Microsoft.LightSwitch.Presentation.Implementation; using System.Collections.Generic; namespace LightSwitchApplication { public static class MultiSelectGridExtensions { public static void AddCheckBoxColumnForMultiSelection<T>(this IContentItemProxy gridProxy, ObservableCollection<T> selectedItems) where T : class,IEntityObject { EventHandler<ControlAvailableEventArgs> gridProxy_ControlAvailable = null; gridProxy_ControlAvailable = (s1, e1) => { DataGrid dataGrid = e1.Control as DataGrid; var contentItem = dataGrid.DataContext as IContentItem; var visualCollection = (contentItem.Value) as IVisualCollection; dataGrid.LoadingRow += new EventHandler<DataGridRowEventArgs>((s2, e2) => { DataGridColumn column = dataGrid.Columns[0]; var checkBox = column.GetCellContent(e2.Row) as CheckBox; T currentRowItem = e2.Row.DataContext as T; if (currentRowItem != null) { checkBox.IsChecked = selectedItems.Contains(currentRowItem); } RoutedEventHandler checkboxClick = null; checkboxClick = ( (s3, e3) => { var selectedItem = dataGrid.SelectedItem as T; if (selectedItem == null) { return; } if (checkBox.IsChecked ?? false) { if (!selectedItems.Contains(selectedItem)) { selectedItems.Add(selectedItem); } } else { selectedItems.Remove(selectedItem); } TriggerCanExecute(visualCollection); }); checkBox.Click += checkboxClick; }); var col = new DataGridTemplateColumn(); // 動態新增模板 var xaml = @"<DataTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""> <CheckBox/> </DataTemplate>"; var dataTemplate = XamlReader.Load(xaml) as DataTemplate; col.CellTemplate = dataTemplate; dataGrid.Columns.Insert(0, col); gridProxy.ControlAvailable -= gridProxy_ControlAvailable; }; gridProxy.ControlAvailable += gridProxy_ControlAvailable; } private static void TriggerCanExecute(IVisualCollection visualCollection) { //事件處理 // var currentItem = visualCollection.SelectedItem; var collection = visualCollection as IEnumerable<IEntityObject>; if (!visualCollection.SelectedItem.Equals(collection.Last())) { visualCollection.SelectedItem = collection.Last(); } else { visualCollection.SelectedItem = collection.First(); } visualCollection.SelectedItem = currentItem; } } }
在需要的介面中用法如下:
public partial class EditableProductsGrid { ObservableCollection<Product> SelectedProducts = new ObservableCollection<Product>(); partial void EditableProductsGrid_InitializeDataWorkspace(List<IDataService> saveChangesTo) { this.FindControl("grid").AddCheckBoxColumnForMultiSelection<Product>(SelectedProducts); } partial void DoSomethingWithSelection_Execute() { foreach (var item in SelectedProducts) { this.ShowMessageBox(item.ProductName); } } partial void DoSomethingWithSelection_CanExecute(ref bool result) { result = this.Products.SelectedItem != null && SelectedProducts.Count >= 1; ; } }
相關推薦
lightswitch datagrid 動態新增複選框的功能。
lightswitch中非自定義datagrid 使用注入的方式新增複選框,以便使用者可以進行多項選擇,using Microsoft.LightSwitch; using Microsoft.LightSwitch.Client; using Microsoft.Light
VC++ 如何向一個列表控制元件中動態新增複選框
宣告:由於自己的程式設計需要,這裡的列表控制元件只有一列,是list樣式。 1.首先給列表控制元件關聯一個成員變數,例如: DDX_Control(pDX, IDC_LIST_DtvParent, m
為DataGridView 新增複選框,實現全選功能
1、指定DataGridView的第一列為DataGridViewCheckBoxColumn 2、為第一列的標題欄新增一個CheckBox,假設為HeaderCheckBox同時為HeaderCheckBox定義好 MouseClick 和 KeyUp 事件priva
金蝶bos 自定義UI介面新增複選框控制元件,並且做業務處理
/** * 顯示工程型別 * @author daihao * 
easyui datagrid 建立帶複選框表格(2)
1.原始碼 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="keywords" content="jquery,
【機房重構】DataGridView中新增複選框
實現效果 DataGridView列頭新增複選框 //宣告靜態類變數 private static DataGridViewCheckBoxColumn checkColumn = null; private void cmbJiBie_SelectedIndexChang
vue element UI el-table 給表格新增複選框,並得到所選值
<el-table @selection-change="changeFun"> <el-table-column type="selection"> </el-table-column> </el-table>
PyQt treewiget新增複選框,並獲取是否選中
# -*- coding: utf-8 -*- import sys from PyQt4.QtGui import * from PyQt4.QtCore import * class TreeWidget(QWidget): def __in
解決layui動態載入複選框無法選中
問題描述 1.最近用layui做後臺介面,遇到layui跟ajax資料動態載入的checkbox,偶爾不能正常勾選,取消 2.有分頁時,最後一頁資料過少會導致其他頁下方資料無法選中 3.頁面沒載入完或暴力測試時也會不能選中 利用layui更新渲染方法和網上的一些方法去解決後極大的
自定義表格新增複選框列
最近做個購物車, 需要自己在表格中實現一個複選框的列: <input type="checkbox" onclick="allcheck(this.checked)"/>全選 <td><input type="checkbox" name="
Query+ztree實現下拉樹複選框功能
完整專案下載連結: CSDN下載頁 檔案比較大是由於該功能是在公司專案中實現的,公司用了AdminLTE.css,其實做這個功能用到的並不多,如果不用該css也沒影響,就是下拉框div會變成圓角,自己改下樣式就行了。在打包上傳的時候我將jquery,boot
Qt 之 QHeaderView 新增複選框
簡述 前面分享了QTableView中如何新增複選框。本節主要介紹QTableView中的表頭-QHeaderView新增複選框的功能,下面以水平表頭為例,垂直表頭類似! | 效果 QHeaderView 原始碼 TableHead
EASYUI DATAGRID 多列複選框CheckBox
主要實現: 用的 easyui 1.3.2 實現多個複選框列,各列互不影響。能夠實現全選。主要部門用紅色標記了的。 easyui datagrid 初始化: <script> function initTableGMAL() {
datatable動態生成複選框
首先需要說明: 1,原始的datatable是沒有複選操作和批量操作的 2,當用戶點選批量的時候做了非空判斷,然後選中後再將選中的資料id以連結的方式傳遞到下一個頁面 3,整個頁面是jsp格式 <a href="javascript:void
datatables 新增複選框及序號列及使用ajax請求
1.頁面引入樣式 和 js 檔案 2. html 程式碼 <table id="keeperUserList" class="display table table-striped table-bordered table-hover table-checkabl
input複選框功能
<input type="checkbox" name="test"/>1 <input type="checkbox" name="test"/>2 <input type="checkbox" name="test"/>3 $(':checkbox[name="tes
自定義相簿時候的複選框☑️問題。
我的相簿裡是一個recycleView所以操作起來也很方便,我這裡直接就貼上條目佈局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.
extjs4當中的gridpanel,翻頁後保持複選框內容。
這還真意外的花了一些時間,趕緊寫下來有助於記憶…… 說真的對extjs控制元件命令瞭解的太少了,還得多下點功夫才行…… Ext.extend(DsTruck.FinanceOut, Ext.Panel, { PageSize: 6,//用於控制每頁的行數
###①datatable客戶端分頁,全選只能選中一頁(能力有限,(雖然不是服務端分頁),同事-老大都不知道)+ ②【動態新增刪除CheckBox的ID】 JQuery datatables 表頭複選框切換頁面時保持選中的問題
①datatable客戶端分頁,全選只能選中一頁(能力有限,(雖然不是服務端分頁),同事-老大都不知道)。 對於要解決的問題: 【 JQuery datatables 表頭複選框切換頁面時保持選中的問題 】 ==== 這個:https://blog.csdn.net/nihaoqiuli
AJAX——動態新增控制元件(複選框)
需求:使用者根據自己的需求,配置下拉框中的欄位。 解決思路:使用者配置下拉框中的欄位(例如:高階查詢,基礎資訊),動態新增複選框控制元件。使用者再對複選框進行勾選,最終結果是,基礎資訊中的,高階查詢下拉框中為使用者勾選的欄位。 前臺程式碼: <asp:Content