自动为DEV GridView控件添加SizeChanged事件

实现gdv设置的抽象对象,不用每个gdv控件都添加sizechanged事件,只需执行gdc绑定sql函数,在其中会自动添加SizeChanged事件。

//2016.5.13 by sngk

//根据控件大小自动调整GridView列宽模式,尽量使列充满

//2016.11.19 实现自动添加sizechanged事件

//该函数只执行一次,在赋值时

public static void BestFitGridViewColumnsWidth(DevExpress.XtraGrid.GridControl gdc,string sql, int hidecols=0)

{

DevExpress.XtraGrid.Views.Grid.GridView gdv = (DevExpress.XtraGrid.Views.Grid.GridView)gdc.Views[0];

//绑定数据

gdv.GridControl.DataSource = DBFactorySingleton.GetInstance().Factory.GetDataTable(sql);

for (int i = 0; i < hidecols;i++ )

gdv.Columns[i].Visible = false;

     //添加事件

gdc.SizeChanged += BestFitDevGrid_Size_Changed_Event;

//虽然每次窗体变化时都会激发sizechange事件,但窗体第一次load时不会触发,所以加一句调整语句

BestFitGridViewWidth(gdv);

}

//2016.11.19 技术进步,后台为控件添加事件

public static void BestFitDevGrid_Size_Changed_Event(object sender, EventArgs e)

{

//获得gdc对象

DevExpress.XtraGrid.GridControl gdc=(DevExpress.XtraGrid.GridControl)sender;

//取得gdc的第一个gdv对象

DevExpress.XtraGrid.Views.Grid.GridView gdv = (DevExpress.XtraGrid.Views.Grid.GridView)gdc.Views[0];

//设置最适合列宽的判断行数

gdv.BestFitMaxRowCount = 500;

BestFitGridViewWidth(gdv);

}

//根据窗体大小判断gdv最合适大小

public static void BestFitGridViewWidth(DevExpress.XtraGrid.Views.Grid.GridView gdv)

{

//先设置最小列宽

gdv.BestFitColumns();

//获取所有列总最小宽度

int tt = 0;

for (int i = 0; i < gdv.Columns.Count; i++)

{

if (gdv.Columns[i].Visible)

tt += gdv.CalcColumnBestWidth(gdv.Columns[i]);

}

//如果有指示列,加上其宽度

if (gdv.OptionsView.ShowIndicator)

tt += gdv.IndicatorWidth;

//根据宽度调整列显示模式

if (tt < gdv.ViewRect.Width)

gdv.OptionsView.ColumnAutoWidth = true;

else

gdv.OptionsView.ColumnAutoWidth = false;

}

时间: 2024-08-04 23:59:12

自动为DEV GridView控件添加SizeChanged事件的相关文章

jQuery对新添加的控件添加响应事件

1. 通过id和类控制 <html> <head> <script src="jquery.js"></script> <script> $(document).ready(function(){ $("#button1").click(function(){ var val = "<div class='mi'>nihao</div>"; jQuery(&quo

jquery 多控件添加相同事件

例子: function easyControl(){ $("#startDate, #endDate").focus(function(){ $("#search").prop("checked",true); }); } 用作提醒自己,每次用都忘记怎么写.

给input的按钮控件添加onserverclick事件

前台: <input type="button" value="登录" id="login" onclick="" runat="server" onserverclick="Login_Click" />事件的名字自己命名 后台: 对应前台的事件名称里面的参数复制Page_Load事件里的参数就行 protected void Login_Click(object send

GridView控件点击单元格如何获取该列的列标题

本博文Insus.NET教你实现在GridView控件中,用mouse点击某单元格之后,希望能获取到该列的列标题. 创建一个网页,创建一个GridView控件: 去cs绑定数据给GridView控件: 下面我们需要写注册click事件,以便获取被点击的行或列索引.在网页中override Render()方法,为cell添加attributes “onclick”事件. 现在我们需要为GridView控件添加一个事件,添加一个Label,用来显示所获取的列名.去.aspx的html markup

ASP.NET编辑与更新数据(非GridView控件实现)

Insus.NET在实现<ASP.NET开发,从二层至三层,至面向对象 (5)>http://www.cnblogs.com/insus/p/3880606.html 中,没有把数据编辑与更新功能一起演示,留下给网友们自由发挥,但是还是有网友想看看Insus.NET用实现方法. 以前Insus.NET的做法,是在GridView控件中进行.如这篇视频教程<GridView Edit Update Cancel Delete>http://www.cnblogs.com/insus/

repeater中后台动态为控件添加属性

在此贴出repeater中的ItemDataBound事件中的代码: private void ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//**对每一行操作,两种枚举必须都要进行判断 { TextBox tb = e.Item.FindCont

扩展GridView控件——为内容项添加拖放及分组功能

引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用."Tiles"提供了一个简单易用,平铺方式来组织内容显示.Windows8的开始菜单是最典型的GridView 示例."开始菜单"显示了系统中安装的所有应用程序,而且支持重新排列. 本文源于我们项目的开发人员,他们想在项目中提供与GridView相同的用户体验,想要创建类GridView控件

2016.1.19 DEV Express控件GirdControl使用

DEV控件在工具箱中消失处理方法 开始-->程序-->Developer Express v2009 vol 3(依据版本不同)-->Components-->Tools-->ToolboxCreator   1.点击一行选择完整一行 Run Designer->View->OptionsBehavior->EditorShowMode 设置为:Click Run Designer->View->OptionsSelection.EnableAp

GridView控件相关

---恢复内容开始--- GridView控件的[AutoGenerateColumns]属性(bool类型)的意思是----运行时是否基于关联的数据源自动生成列. 这样造成的影响是列的标题自动生成无法进行修改. 想手工的控制列名,则需把这个属性设为False.然后再控件的右上角点击,出现[编辑列],或者在属性页面设置[Columns]属性,都会弹出编辑列的界面: (1).[BoundField]----绑定以文本形式显示一个字段.它的属性: HeaderText----就是显示的列名, Dat