高分求关于自定义查询控件反射

问题描述

publicpartialclassUserControlSearch:UserControl{objectDataSource;//我希望这个查询控件的datasource是object或ienumrable类型,如果object类型对于以后的反射太复杂的话,定义为ienumrable也可以,最好不要再定义其他类型了,例如为table之类的,这样限制太死publicUserControlSearch(){InitializeComponent();}publicvoidInitialize(objectDataSource){this.DataSource=DataSource;}privateList<string>GetFields()//这里我希望能通过反射得到相关字段,例如如果datasource实际是datatable的话,则应返回列名集合,如果datasource实际是List<someentity>那么应该返回someentity的字段或属性集合{List<string>fieldNames=newList<string>();Typet=this.DataSource.GetType();。。。。。。。。。。。。。。。。。。。。returnfieldNames;}}以上问题请高手指点

解决方案

解决方案二:
Typet=this.DataSource.GetType();foreach(var字段名int.GetPropertites()){字段名.Name就是你要的。}
解决方案三:
版主,我希望这个数据源时比较通用的,反射会得到很多信息,我如何能确定哪部分信息是实际我想要的字段名集合,这是个难点啊
解决方案四:
classBaseClass{protectedstringName;publicvirtualstringname{get{returnName;}set{Name=value;}}publicintage{set;get;}}stringoutPut="";List<BaseClass>bc=newList<BaseClass>();PropertyInfo[]pi=bc.GetType().GetProperties();foreach(PropertyInfopinpi){outPut+=p.Name+"<br/>";}Response.Write(outPut);

输出的结果是:CapacityCountItem可以看得出,对于list就不适合这么处理(用GetProperties())要不就用接口实现,对于datatable一种实现,对于list是另一种实现……
解决方案五:
也做过类似的需求。数据源还是做成IEnumerable<object>这种类型的吧。然后根据需要再设置几个属性publicstringFields1{get;set;}publicstringFields2{get;set;}publicstringFields3{get;set;}最后通过Fields1,fields2,fields3来反射数据源。类似于Combobox的displaymember,和valuemember
解决方案六:
privateList<string>GetFields()//这里我希望能通过反射得到相关字段,例如如果datasource实际是datatable的话,则应返回列名集合,如果datasource实际是List<someentity>那么应该返回someentity的字段或属性集合{List<string>fieldNames=newList<string>();Typet=this.DataSource.GetType();if(tisDateTable){...}elseif(tis...){...}returnfieldNames;}}
解决方案七:
DataTable如何取Columns应该简单吧,object取属性或字段,上楼已经有示例了.
解决方案八:
最好有谁做过类似查询控件,给提供一些好的建议
解决方案九:
protectedvirtualIListGetListSource(){if(DataSource==null)returnnull;IListSourcels=DataSourceasIListSource;if(ls!=null)returnls.GetList();DataTabletable=DataSourceasDataTable;if(table!=null)returntable.DefaultView;IListlist=DataSourceasIList;returnlist;}

解决方案十:
ilist.GetType().GetGenericArguments()[0];是下面的这个作用。List<someentity>那么应该返回someentity

时间: 2024-07-30 06:10:39

高分求关于自定义查询控件反射的相关文章

自定义控件-winform .NET自定义用户控件,求一解决方案

问题描述 winform .NET自定义用户控件,求一解决方案 设计的自定义控件是没有边框和背景的,当点击该控件时显示边框和背景.现在多个自定义控件应用在同一个界面中.然而这些控件点击之后都有边框了,我只想最后点击的那个才能有边框和背景色,其他之前点击的边框和背景要去掉.如何解决? 解决方案 做一个属性控制是否有边框.点击的时候遍历下,将其它的设置为无边框. 解决方案二: 遍历控件用this.controls就可以了.

自定义组合控件问题-自定义组合控件onDraw()方法死循环

问题描述 自定义组合控件onDraw()方法死循环 自定义了一个组合控件,继承自LinearLayout,逻辑很简单,就是想实现一个带title的EditText.为了便于分析问题,已经将代码中的attrs.xml的属性删除,只留下导致问题出现的部分. 自定义控件的JAVA代码: package com.shuda.epmms.customview; import android.content.Context; import android.content.res.TypedArray; im

在silverlight里自定义一个控件,在自定义控件类里面定义依赖属性出错。

问题描述 在silverlight里自定义一个控件,在自定义控件类里面定义依赖属性出错. 在silverlight里自定义一个控件ReplicationEventComboBox继承ComboBox,在ReplicationEventComboBox类里面定义依赖属性TextProperty. 其中ReplicationEventComboBox中 private TextBlock _text; 字段在方法OnApplyTemplate()中被赋值 var text = this.GetTem

实例讲解Android中的View类以及自定义View控件的方法_Android

View的简单理解和实例 1.View的基本概念在Activity显示的控件 都叫做View(View类 是所有的控件类的父类  比如 文本 按钮) 2.在Activity当中获取代表View的对象Activity读取布局文件生成相对应的 各种View对象 TextView textView=(TextView)findViewBy(R.id.textView) 3.设置view的属性Activity_mian.xml 这样的xml布局文件中发现了,类似@+id/和@id/到底有什么区别呢? 这

iOS8新特性扩展(Extension)应用之四——自定义键盘控件

iOS8新特性扩展(Extension)应用之四--自定义键盘控件         iOS8系统的开放第三方键盘,使得用户在输入法的选择上更加自主灵活,也更加贴近不同语言的输入风格.这篇博客,将介绍如何开发一个第三方的键盘控件. 一.了解UIInputViewController类         UIInputViewController是系统扩展支持键盘扩展的一个类,通过这个类,我们可以自定义一款我们自己的键盘提供给系统使用.         首先,我们先来看一下这个类中的一些属性和方法:

android seekbar-android关于自定义seekbar控件的问题(将横向seekbar改成竖向seekbar)

问题描述 android关于自定义seekbar控件的问题(将横向seekbar改成竖向seekbar) 自定义了个seekbar,将横向的seekbar改为了竖向的seekbar,目前只支持触摸,但是用遥控器控制时候按上下按钮没响应,按下左右按钮seekbar才会被拖动 追了下代码seekbar继承自AbsSeekbar,AbsSeekBar继承自progressBar,ProgressBar继承自View,我该如何实现将按下左右键seekbar的progress值发生改变改为按下上下键see

timer-DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用

问题描述 DEV 第三方控件中的使用中自定义用户控件里面的Timer 控件的使用 用户控件中使用的代码如下:/asp:ScriptManager /asp:Timer /asp:Literal /asp:UpdatePanel 为什么到事件刷新的时候会报 " Sys.WebForms.PageRequestManagerParserErrorException: 未能分析从服务器收到的消息." 这个错误呢?请指教一下 解决方案 asp不会,jsp会一点,祝你好运!

ASP.NET中使用自定义验证控件

asp.net|控件 asp.net 1.1中,有不少验证控件,大大方便了我们,但有的时候,当需要做特殊的验证时,还会觉得不够用的,于是我们可以用自定义验证控件CustomValidator,要使用这个控件,必须在服务端写相应的事件,格式如下: Sub FunctionName(sender as Object, args as ServerValidateEventArgs) ...End Sub其中注意两个参数 value:指示当前的CustomValidator验证的是哪一个控件 IsVa

Flex中利用textFieldStyleName样式自定义ColorPicker控件内文本风格的例子

接下来的例子演示了Flex中如何利用textFieldStyleName样式,自定义ColorPicker控件内文本风格 . 下面是完整代码 <?xml version="1.0" encoding="utf-8"?> <mx:Applicationxmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="t