惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
Google Online Security Blog
Google Online Security Blog
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
Help Net Security
Help Net Security
Security Archives - TechRepublic
Security Archives - TechRepublic
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
W
WeLiveSecurity
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Hacker News: Front Page
人人都是产品经理
人人都是产品经理
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
Project Zero
Project Zero
T
Tailwind CSS Blog
V
Vulnerabilities – Threatpost
P
Privacy & Cybersecurity Law Blog
Know Your Adversary
Know Your Adversary
Last Week in AI
Last Week in AI
腾讯CDC
Schneier on Security
Schneier on Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
WordPress大学
WordPress大学
量子位
L
Lohrmann on Cybersecurity
J
Java Code Geeks
Cyberwarzone
Cyberwarzone
Recent Announcements
Recent Announcements
IT之家
IT之家
博客园_首页
罗磊的独立博客
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Application and Cybersecurity Blog
Application and Cybersecurity Blog
F
Fortinet All Blogs
博客园 - Franky
P
Palo Alto Networks Blog
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
B
Blog RSS Feed
Cisco Talos Blog
Cisco Talos Blog
TaoSecurity Blog
TaoSecurity Blog
H
Heimdal Security Blog
G
GRAHAM CLULEY
Cloudbric
Cloudbric

博客园 - 冯小磊

女人的面相 只有mdf文件的恢复技术 冒泡,选择,插入,希尔 vb.net c#.net 代码相互转换 [转]C# 参考之转换关键字:operator、explicit与implicit 【转载】SQL查询中区分大小写的方法 对于sql数据库中重复的记录... (word导出问题)解决:服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))的解决方法 白骨精写给孙悟空的绝世情书 DBCC CHECKDB (检查指定数据库中的所有对象的分配和结构完整性) c# 限制窗体 sqlserver附加数据库错误823的解决方案 改变DevExpress控件的字体 按某一字段分组取最大(小)值所在行的数据 mssql1069错误(由于登录失败而无法启动服务)解决方法 C# 判断中文字符(字符串) 函数datediff MSSQL中取字符中的汉字或双字节字符 用SqlCommandBuilder 实现批量更新
Dev里面DataGid控件使用方法之一
冯小磊 · 2008-07-10 · via 博客园 - 冯小磊

1)Dev控件GridControl 的使用

1、确认当前正在编辑的单元格的输入
this.gridview1.CloseEditor();

2、保存当前行的值到数据源
this.gridview1.UpdateCurrentRow();

3、通过数据适配器把修改更新到数据库
sqlDataAdapter1.Update(myDataSet, "MyTable")
//此时直接通过DataAdapter执行Update就可以

按照1,2,3的步骤执行;也可以通过1,2步骤然后通过Sql实现

(2)DataGrid的初始化
       gridView1.OptionsView.EnableAppearanceEvenRow = true;
      gridView1.OptionsView.EnableAppearanceOddRow = true;
      gridView1.OptionsView.ShowFilterPanel = false;
     gridView1.OptionsView.ShowGroupPanel = false;

   gridView1.OptionsView.ShowGroupPanel=false;
   gridView1.OptionsSelection.EnableAppearanceFocusedCell = false;
   gridView1.OptionsBehavior.Editable = false;
   gridView1.OptionsCustomization.AllowColumnMoving = false;
   gridView1.OptionsCustomization.AllowColumnResizing = false;
   gridView1.OptionsCustomization.AllowGroup = false;
   gridView1.OptionsCustomization.AllowFilter = false;
   gridView1.OptionsCustomization.AllowSort = true;

(3)获取选中的行 和选中行的字段的内容

int[] a = this.gridView1.GetSelectedRows(); //传递实体类过去 获取选中的行
LAA.AssetGuid = this.gridView1.GetRowCellValue(a[0], "AssetGuid").ToString();//获取选中行的内容

(4)以前在windows 自带的控件里面Button控件的相互调用是
button1_Click(null,EventArgs.Empty);
Dev控件下面是
simpleButton1_Click(new object(),new EventArgs());

(5)在XtraGrid中如何验证单元格的值
我们在XtraGrid直接输入数据的情况下,如何验证每一个单元格输入的值是否正确呢?
有两种方法来实现基于单元格的验证:
1、使用RepositoryItem.Validating事件
事件的"sender" 必须转换为BaseEdit类型,使用EditValue来获取当前输入的值并进行校验,如果校验不通过,把e.Cancel设置True。这种方法一般用来对内置控件的单元格进行数据验证
2、使用 GridView.ValidatingEditor 事件
事件的"sender"必须转换为GridView类型,当前列可以从GridView.FocusedColumn属性获得,值可以从e.Value获取,如果校验不通过,需要把e.Valid设置为False.。
这种方法一般用于对整个Grid内的文本框进行数据验证
在设置完事件之后需要写一个GridView.InvalidValueException 的事件委托:
例如:

private void gridView1_InvalidValueException(object sender, DevExpress.XtraGrid.Views.Base.InvalidValueExceptionEventArgs e) {
  e.ThrowException 
= false;
  e.WindowText 
= "The new value is invalid. Please correct it or press Esc to abandon your changes.";
  e.DisplayError 
= true;
}

(6)barManager的具体设置
在增加了barManager控件以后,在[Click Here to add MainMenu] [Click Here to Tool Bar]里面选择[Click Here to Tool Bar] 填写需要新增的工具栏按钮。
进入Designer 里面,选择ToolBars  ->Custom 1->OptionsBar 里面进行如下设置:
AllowQuickCustomization=false
DrawDragBorder=false
RotateWhenVertical=false
UseWholeRow=True
以上4项进行初始化设置

(7) 在DataGrid 里面增加状态栏
首先在BarManager里面增加StaticText  把新增的barStaticItem 的AutoSize 设置为Spring
然后,编写以下代码:

private void StateCote()
        
{
           
            
if (gridView1.RowCount!=0)
            
{
                
int a=this.gridView1.RowCount;
                barStaticItem1.Caption
="当前共有记录:"+a.ToString();
                
int[] b=this.gridView1.GetSelectedRows();
                b[
0]+=1;
                barStaticItem2.Caption
="当前选中:"+b[0].ToString();
            }

            
else
            
{
                barStaticItem1.Caption
="当前共有记录:";
                barStaticItem2.Caption
="当前选中:";
            }
        
        }


        
private void gridControl1_Click(object sender, System.EventArgs e)
        
{
            StateCote();
        }


        
private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        
{
            StateCote();
        }

(8) DateTable 填充DataGrid
这里需要引用:

using DevExpress.Utils;

/**//// <summary>
        
/// 根据DataTable 填充DataGrid
        
/// </summary>
        
/// <param name="dt"></param>

        private void DisposeDataGrid(DataTable dt)
        
{
            
//标题居中
            gridView1.Appearance.HeaderPanel.TextOptions.HAlignment =HorzAlignment.Center;
            
            
this.gridControl1.DataSource = dt;
            gridView1.Columns[
0].Visible = false;//异常日志GUID
            gridView1.Columns[1].Visible = false;//通行编号
            gridView1.Columns[2].Visible = false;//通道编号
            
            gridView1.Columns[
3].Caption = "通道名称";
            gridView1.Columns[
3].Width = 100;

            gridView1.Columns[
4].Caption = "卡号";
            gridView1.Columns[
4].Width = 100;

            gridView1.Columns[
5].Caption = "持卡人姓名";
            gridView1.Columns[
5].Width = 60;


            gridView1.Columns[
6].Caption = "主卡卡号";
            gridView1.Columns[
6].Width = 100;
            
            gridView1.Columns[
7].Caption = "主卡持卡人";
            gridView1.Columns[
7].Width = 60
            
            gridView1.Columns[
8].Caption = "通行时间";
            gridView1.Columns[
8].Width = 100;


            gridView1.Columns[
9].Caption = "车牌号码";
            gridView1.Columns[
9].Width = 60;
            
            
            
            gridView1.Columns[
10].Visible = false;//图象GUID


            gridView1.Columns[
11].Caption = "异常描述";
            gridView1.Columns[
11].Width = 100;

            gridView1.Columns[
12].Caption = "处理结果";
            gridView1.Columns[
12].Width = 100;

            gridView1.Columns[
13].Visible = false;//ImageID


            
//可以排序
            gridView1.OptionsCustomization.AllowSort=true;
        }

其中有一列显示时间类型

            gridView1.Columns[3].Caption = "操作时间";
            gridView1.Columns[
3].Width = 200;
            gridView1.Columns[
3].UnboundType = DevExpress.Data.UnboundColumnType.DateTime;
            gridView1.Columns[
3].DisplayFormat.FormatString = "F";
            gridView1.Columns[
3].DisplayFormat.FormatType = FormatType.DateTime;

(9) 双击DataGrid弹出详细信息

private void gridControl1_DoubleClick(object sender, System.EventArgs e)
        
{
            
//双击弹出异常日志描述
            if (this.gridView1.RowCount > 0)
            
{
                
int[] a=this.gridView1.GetSelectedRows();
                
string str_GUID=this.gridView1.GetRowCellValue(a[0],"Ex_No").ToString();//获得异常编号
                MessageBox.Show(str_GUID);
                frmExceptionLogDesc dlg
=new frmExceptionLogDesc(); 
                dlg.Text 
= "异常日志查看";
                dlg.ShowDialog();
            }

        }