首页 > 社交 > 科普中国

WinForm(十一)用户控件

常驻编辑 科普中国 2022-10-02 控件   用户   组合   数据源   属性   条件   名称   项目   数据   产品
? conditions) { if (!control.IsAncestorSiteInDesignMode) { if (!string.IsNullOrWhiteSpace(url) && !string.IsNullOrWhiteSpace(dataSourceName) && !string.IsNullOrWhiteSpace(control.DisplayMember) && !string.IsNullOrWhiteSpace(control.ValueMember)) { url = #34;{url.TrimEnd('/', '')}/{dataSourceName}?fields={Uri.EscapeDataString(control.ValueMember)},{Uri.EscapeDataString(control.DisplayMember)}"; if (conditions != null && conditions.Count > 0) { var arr = conditions.Select(s => #34;({s.Name},{s.Symbol},{s.Value})").ToArray(); url += "&conditions=" + Uri.EscapeDataString(string.Join(',', arr)); } var content = await _httpClient.GetStringAsync(url); var table = JsonToDataTable(content); control.DataSource = table; } } } static DataTable JsonToDataTable(string json) { var table = new DataTable(); var list = JsonSerializer.Deserialize>>(json); var columns = list?.First().Select(d => d.Key); if (list != null && columns != null) { foreach (var item in columns) { table.Columns.Add(item); } foreach (var item in list) { table.Rows.Add(item.Values.ToArray()); } } return table; } public static async Task DBGridInit(this DataGridView control, string url, string dataSourceName, List? conditions) { if (!control.IsAncestorSiteInDesignMode) { if (!string.IsNullOrWhiteSpace(url) && !string.IsNullOrWhiteSpace(dataSourceName) && control.Columns.Count > 0) { var fieldList = new List(); foreach (DataGridViewColumn column in control.Columns) { fieldList.Add(column.DataPropertyName); } url = #34;{url.TrimEnd('/', '')}/{dataSourceName}?fields={Uri.EscapeDataString(string.Join(',', fieldList))}"; if (conditions != null && conditions.Count > 0) { var arr = conditions.Select(s => #34;({s.Name},{s.Symbol},{s.Value})").ToArray(); url += "&conditions=" + Uri.EscapeDataString(string.Join(',', arr)); } var content = await _httpClient.GetStringAsync(url); var table = JsonToDataTable(content); control.DataSource = table; } } } } public class DBCondition { [Browsable(true)] [Description("查询条件名称"), Category("数据"), DefaultValue("")] [DisplayName] public string? Name { get; set; } [Browsable(true)] [Description("条件符号"), Category("数据"), DefaultValue("")] public string? Symbol { get; set; } [Browsable(true)] [Description("查询条件值"), Category("数据"), DefaultValue("")] public string? Value { get; set; } } }

DBComBox控件:dAP拜客生活常识网

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GSWControls
{
    [ToolboxItem(true)]
    [ToolboxBitmap(typeof(DBComBox), "gcom.png")]
    public class DBComBox : ComboBox
    {       
        [Browsable(true)]
        [Description("后端Url"), Category("远程数据"), DefaultValue("")]
        public string? Url { get; set; }


        [Browsable(true)]
        [Description("访问Url后端数据源名称"), Category("远程数据"), DefaultValue("")]
        public string? DataSourceName { get; set; }


        [Browsable(true)]
        [Description("查询数据源条件参数"), Category("远程数据"), DefaultValue("")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public List? Conditions { get; set; } = new List();


        protected async override void CreateHandle()
        {
            base.CreateHandle();
            if (!string.IsNullOrWhiteSpace(Url) && !string.IsNullOrWhiteSpace(DataSourceName) && Conditions != null)
            {
                await this.DBControlInit(Url, DataSourceName, Conditions);
            }
        }
    }
}

DBDataGridView控件:dAP拜客生活常识网

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GSWControls
{
    [ToolboxItem(true)]
    [ToolboxBitmap(typeof(DBDataGridView), "ggrid.png")]
    public class DBDataGridView : DataGridView
    {        
        [Browsable(true)]
        [Description("后端Url"), Category("远程数据"), DefaultValue("")]
        public string? Url { get; set; }    
        
        [Browsable(true)]
        [Description("访问Url后端数据源名称"), Category("远程数据"), DefaultValue("")]
        public string? DataSourceName { get; set; }

        [Browsable(true)]
        [Description("查询数据源条件参数"), Category("远程数据"), DefaultValue("")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public List    

相关阅读:

  • 控件在哪里(电脑下载的控件在什么位置)
  • 控件工具箱在哪里(word开发工具控件属性不能点)
  • 基于OpenCv的人脸识别(Python完整代码)
  • H5数独游戏开发
  • 每日一练之Android
  • 如何在线申请个人信用报告
  • 初普TriPollar:源自医疗研发的家用美容体验,全球超过百
  • 快手是哪里的(快手会主动打电话给用户吗)
  • 移动4g套餐哪个划算(2021移动老用户最划算的套餐)
  • 如何注册微博(海外用户怎么注册微博)
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。