初见,Devexpress
【绥江一百】http://www.sj100.net 欢迎,进入绥江一百感谢点击[我的小网站,请大家多多指教相互共勉]
1.连接数据库
- using System;
- using System.Collections.Generic;
- using System.Web;
- using System.Data.OleDb;
- namespace myBPB
- {
- public class myDB
- {
- OleDbConnection conn = null;
- public OleDbConnection getConn()
- {
- string sServer = "192.168.132.10";
- string sDatabase = "myBPB";
- string sUser = "sa";
- string sPassword = "";
- //Provider=SQLOLEDB; 指的是连接数据库所用的相关数据库驱动
- //Data Source; 指的是服务器地址或服务器名称
- //Persist Security Info; 指的是是否保存安全信息,其实可以简单的理解为"在数据库连接成功后是否保存密码信息",True表示保存,False表示不保存
- //Initial Catalog; 指的是要连接的数据库名称
- //User ID; 登录数据库的名称
- //Password; 登录数据库的密码
- String sSQL = String.Format("Provider=SQLOLEDB;Data Source={0};" +"Persist Security Info=True;User ID={2};" +"Initial Catalog={1};Password={3};",sServer, sDatabase, sUser, sPassword);//数据库连接语句
- try
- {
- conn = new OleDbConnection(sSQL);
- conn.Open();
- return conn;
- }
- catch (System.Exception ex)
- {
- return null;
- }
- }
- }
- }
连接数据库
2.填充ASPxGridView
- public void BindGridView()
- {
- OleDbConnection conn = new myDB().getConn();
- string str = "select * from 区域";
- OleDbDataAdapter da = new OleDbDataAdapter(str, conn);
- DataSet ds = new DataSet();
- da.Fill(ds);
- this.ASPxGridView1.DataSource = ds.Tables[].DefaultView;
- this.ASPxGridView1.DataBind();
- conn.Close();
- }
填充ASPxGridView
3.布局
控件:ASPxSplitter(分离器)
作用:布局时多用于分割页面
属性:Orientation(方向)= Vertical(垂直)或 Herizontal(水平)
ASPxSplitter1.Panes[0].PaneStyle.Paddings.Padding = 0; //第一个面板的内边距为0
ASPxSplitter1.Panes[1].PaneStyle.Paddings.Padding = 0; //第二个面板的内边距为0
ASPxSplitter1.Panes[0].Size = 63; //第一个面板的高度(大小)为63
ASPxSplitter1.Panes[1].ScrollBars = ScrollBars.Auto; //自动出现滚动条
ASPxSplitter1.AllowResize = false; //不允许调整ASPxSplitter1
ASPxSplitter1.FullscreenMode = true; //全屏模式为true
控件:ASPxMenu1(菜单)
作用:制作菜单
属性:width(宽度)=100%
Items(菜单的选项)
ItemAutoWidth(菜单选项宽度自动调整)=True(真)或False(假)
AutoSeparators="RootOnly"(菜单选项之间用竖线隔开)
ClientInstanceName="ASPxMenu1"(控件的前端名称)
控件:表格
作用:排版
属性:Style—>表格—>table-layout=fixed(表格宽度为固定值)
控件:ASPxImage
作用:显示图标、图片
属性:ASPxImage1.ImageUrl = "~/Images/man.gif";
控件:ASPxGridView
作用:显示数据
属性:ASPxGridView1.Width = 2000;
ASPxGridView1.SettingsBehavior.AllowFocusedRow = true;//每行都可以选择
Columns(列)— Caption(显示名称)— FieldName(数据库连接字段)
AutoGenerateColumns="False"//数据源自动绑定为假
KeyFieldName="bh"//关键字为bh
ClientInstanceName="ASPxGridView1"(控件的前端名称)
前端运用:
1.在每行前面添加一个ASPxCheckBox
- <dx:ASPxGridView ID="ASPxGridView1" runat="server">
- <Columns>
- <dx:GridViewCommandColumn Caption="操作" ShowSelectCheckbox="true" VisibleIndex="" Width="20px">
- <HeaderTemplate>
- <dx:ASPxCheckBox ID="ASPxCheckBox1" runat="server" ToolTip="Select/Unselect all rows on the page"
- ClientSideEvents-CheckedChanged="function(s, e) { ASPxGridView1.SelectAllRowsOnPage(s.GetChecked()); }" />
- </HeaderTemplate>
- </dx:GridViewCommandColumn>
- </Columns>
- </dx:ASPxGridView>
自动添加ASPxCheck.xml
2.在第一列显示行号
- <dx:ASPxGridView ID="ASPxGridView1" runat="server">
- <Columns>
- <dx:GridViewDataTextColumn Caption="序号" FieldName="XH" UnboundType="Integer" VisibleIndex=""Width="36px">
- <Settings AutoFilterCondition="Contains" />
- <CellStyle HorizontalAlign="Center">
- </CellStyle>
- </dx:GridViewDataTextColumn>
- </Columns>
- </dx:ASPxGridView>
自动添加行号.xml
- protected void ASPxGridView1_CustomUnboundColumnData(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewColumnDataEventArgs e)
- {
- if (e.Column.FieldName == "XH" && e.IsGetData)
- e.Value = (e.ListSourceRowIndex + ).ToString();
- }
自动添加行号.后台
3.将Columns分组
- <dx:GridViewBandColumn Caption="使用于">
- <Columns>
- <dx:GridViewDataTextColumn Caption="部门" FieldName="部门"
- ShowInCustomizationForm="True" VisibleIndex="" Width="150px">
- <Settings AutoFilterCondition="Contains" />
- </dx:GridViewDataTextColumn>
- <dx:GridViewDataTextColumn Caption="何工序或何设备" FieldName="何工序或何设备"
- ShowInCustomizationForm="True" VisibleIndex="" Width="200px">
- <Settings AutoFilterCondition="Contains" />
- </dx:GridViewDataTextColumn>
- </Columns>
- </dx:GridViewBandColumn>
Columns.xml
4.ASPxComboBox配置数据源
- <asp:SqlDataSource ID="SqlDataSource1_BuMen" runat="server"
- ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
- ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
- SelectCommand="SELECT DISTINCT [部门名称], [部门编码] FROM [部门设置]"></asp:SqlDataSource>
数据源—部门.xml
- <dx:ASPxComboBox ID="Com_BuMen" runat="server"
- DataSourceID="SqlDataSource1_BuMen" ValueField="部门编码" DropDownStyle="DropDownList"
- ValueType="System.String" TextFormatString="{1}" EnableCallbackMode="true"
- IncrementalFilteringMode="Contains" TextField="部门编码"
- ClientInstanceName="Com_BuMen" >
- <Columns>
- <dx:ListBoxColumn FieldName="部门编码" Width="45px" />
- <dx:ListBoxColumn FieldName="部门名称" Width="100%" />
- </Columns>
- </dx:ASPxComboBox>
部门文本框.前台
5.增加
- public void Add()
- {
- String str_add= "insert into 区域(区域号,区域,备注) values('" + QuYuHao + "','" + QuYu + "','" + BeiZhu + "')";
- OleDbConnection conn = new myDB().getConn();
- OleDbCommand com = new OleDbCommand(str_add, conn);
- if(Convert.ToInt32(com.ExecuteNonQuery())>)
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(QuYuEdit), "CustomEdit", "alert('添加成功!!');", true);
- }
- else
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(QuYuEdit), "CustomEdit", "alert('添加失败!!');", true);
- }
- conn.Close();
- }
增加.后台
6.删除
- public void Del()
- {
- String str_Del = "delete from 区域 where bh=" + ;
- OleDbConnection conn = new myDB().getConn();
- OleDbCommand com = new OleDbCommand(str_Del, conn);
- int counts = com.ExecuteNonQuery();
- if (counts > )
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(WuLiaoBianMa), "CustomEdit", "alert('删除成功!');", true);
- }
- else
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(WuLiaoBianMa), "CustomEdit", "alert('删除失败!');", true);
- }
- conn.Close();
- }
删除.后台
7.修改
- public void Update()
- {
- String str_Update = "update 区域 set 区域号='" + QuYuHao + "',区域='" + QuYu + "',备注='" + BeiZhu + "' where bh=" + Convert.ToInt32(ASPxHiddenField1.Get("SBH1"));
- OleDbConnection conn = new myDB().getConn();
- OleDbCommand com = new OleDbCommand(str_Del, conn);
- int counts = com.ExecuteNonQuery();
- if (counts > )
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(WuLiaoBianMa), "CustomEdit", "alert('修改成功!');", true);
- }
- else
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(WuLiaoBianMa), "CustomEdit", "alert('修改失败!');", true);
- }
- conn.Close();
- }
修改.后台
8.查询
- public String Old_Name()
- {
- OleDbConnection conn = new myDB().getConn();
- string str = "select * from 物料编码 where bh='" + Convert.ToInt32(ASPxHiddenField1.Get("sBH")) + "'";
- OleDbDataAdapter da = new OleDbDataAdapter(str, conn);
- DataSet ds = new DataSet();
- da.Fill(ds);
- String m = ds.Tables[].Rows[]["物料编码"].ToString();
- return m;
- }
查询(DataAdapter、DataSet).后台
- public void Lei_Xing()
- {
- OleDbConnection conn = new myDB().getConn();
- string str = "select * from 基础数据 where 目录='供应商类型'";
- OleDbCommand com = new OleDbCommand(str, conn);
- OleDbDataReader read = com.ExecuteReader();
- while (read.Read())
- {
- Txt_LeiXing.Items.Add(read["内容"].ToString());
- }
- }
查询后台(DataReader).后台
9.ASPxGridView中勾选ASPxCheckBox删除数据
- List<object> keyValues = this.ASPxGridView1.GetSelectedFieldValues("bh"); //需要在ASPxGridView1的源设置 KeyFieldName="bh"
- ASPxGridView1.Selection.UnselectAll(); //清空ASPxGridView中所有选择的语句。
- int count = keyValues.Count;
- if (str == "删除")
- {
- if (count <= )
- {
- Page.ClientScript.RegisterClientScriptBlock(typeof(WuLiaoBianMa), "CustomEdit", "alert('请选择要删除的数据!');", true);
- return;
- }
- foreach (object key in keyValues)
- {
- do_del(key.ToString()); //删除
- }
- keyValues.Clear();
- count = keyValues.Count;
- BindGridView();
- }
ASPxGridView中勾选ASPxCheckBox删除数据
10.ASPxGridView过滤
- 后台:ASPxGridView1.Settings.ShowFilterRow = true;
- 前台:<Settings AutoFilterCondition="Contains" />//ASPxGridView属性—>Columns—>要实现过滤的列—>Settings—>AutoFilterCondition="Contains"
11.ASPxGridViewExporter导出
- if (Directory.Exists(Server.MapPath("tmp")) == false)
- {
- Directory.CreateDirectory(Server.MapPath("tmp"));
- }
- string path = Server.MapPath("~/tmp/");//获取完整路径
- ASPxGridViewExporter1.FileName = "物料编码";
- ASPxGridViewExporter1.PageHeader.Font.Size = ;
- string message1 = @"物料编码";
- ASPxGridViewExporter1.PageHeader.Center = message1;
- this.ASPxGridViewExporter1.WriteXlsToResponse();
ASPxGridViewExporter导出.后台
12.ASPxHiddenField隐藏字段
- 设置前台名称:ClientInstanceName="hf1";
- 后台赋初值:ASPxHiddenField1.Add("SBH",0);
- 前台赋值:hf1.Set('sBH', ASPxGridView1.GetRowKey(ASPxGridView1.GetFocusedRowIndex())); //给隐藏字段赋值为ASPxGridView1当前被选中行的bh值
后台取值:ASPxHiddenField1.Get("sBH");
前台取值:hf1.Get('sBH')
13.ASPxPopupControl自定义约会表单
- 设置前台名称:ClientInstanceName="ASPxPopupControl1";
- 前台显示ASPxPopupControl自定义表单:ASPxPopupControl1.Show();
- 前台隐藏ASPxPopupControl自定义表单:ASPxPopupControl1.Hid();
14.ASPxUploadControl上传、导入实例(导入)
点击导入按钮,弹出下图的自定义约会表单,将选择的文件上传至固定的地址并导入ASPxGridView中
- .前台弹出表单:ASPxPopupControl1.Show();
- .上传文件到指定的地址:
- String ExcelFileName = "";
- protected voidASPxUploadControl1_FileUploadComplete(objectsender,DevExpress.Web.ASPxUploadControl.
- FileUploadCompleteEventArgs e)
- {
- if (Directory.Exists(Server.MapPath("tmp")) == false)
- {
- Directory.CreateDirectory(Server.MapPath("tmp"));
- }
- if (e.IsValid)
- {
- ASPxUploadControl1.PostedFile.SaveAs(Server.MapPath("~/tmp/")+ ASPxUploadControl1.PostedFile.FileName);
- ExcelFileName = ASPxUploadControl1.PostedFile.FileName;
- }
- }
- .导入ASPxGridView:
- #region 从Table导出数据DaoRu()
- public void DaoRu(ASPxGridView ASPxGridView1,String ExcelFileName)
- {
- try //步骤一:先将用户选择的EXCEL文件上传至服务器端。
- {
- if (Directory.Exists(Server.MapPath("tmp")) == false)
- {
- Directory.CreateDirectory(Server.MapPath("tmp"));
- }
- string path = Server.MapPath("~/tmp/") + ExcelFileName;//获取完整路径
- GetOneSheet("Sheet", path, ASPxGridView1);
- }
- catch
- {
- throw;
- }
- }
- // 步骤二:将上传的文件导入至DataSet
- public static void GetOneSheet(string sheetname, string Path, ASPxGridView ASPxGridView1)
- {
- try
- {
- string connString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Excel 8.0;";
- OleDbConnection con = new OleDbConnection(connString); //连接excel表
- con.Open();
- String strOutPutExcel = "select * from [" + sheetname + "$]";
- OleDbDataAdapter ad = new OleDbDataAdapter(strOutPutExcel, con);
- DataSet table = table = new DataSet();
- ad.Fill(table,"table1"); //填充dataset
- int count = table.Tables[].Rows.Count;
- OleDbConnection conn = new myDB().getConn();
- OleDbCommand com = null;
- for (int i = ; i < count; i++)
- {
- String QuYuHao = table.Tables[].Rows[i][].ToString().Trim();
- String LeiBeiHao = table.Tables[].Rows[i][].ToString().Trim();
- String str_insert = "INSERT INTO [物料编码] ( [区域号], [类别号]) VALUES (?, ?)";
- OleDbParameter op1 = new OleDbParameter();
- OleDbParameter op2 = new OleDbParameter();
- op1.OleDbType = OleDbType.VarChar;
- op2.OleDbType = OleDbType.VarChar;
- op1.Value = QuYuHao.ToString();
- op2.Value = LeiBeiHao.ToString();
- com = new OleDbCommand(str_insert,conn);
- com.Parameters.Add(op1);
- com.Parameters.Add(op2);
- try
- {
- com.ExecuteNonQuery();
- }
- catch
- {
- //Debug.WriteLine();
- }
- }
- con.Close();
- }
- catch
- {
- throw;
- }
- }
- #endregion
- .确定按钮单击事件中调用DaoRu():
- DaoRu(ASPxGridView1, ExcelFileName);
- BindGridView(); //重新填充ASPxGridView
代码实现
15.根据ASPxGridView值得变化,前端给控件赋值实例(修改)
- .ClientInstanceName="ASPxGridView1" //要赋值的前端控件也需设置前端名称
- .判断是否选择了"修改"
- if (str == "修改")
- {
- Session.Add("Add_Or_Update", );
- Response.Redirect("~/WuLiaoBianMaEdit.aspx"); //转到下图的修改页面
- }
- ."修改"页面加载:
- if (!IsPostBack)
- {
- if (Convert.ToInt32(Session["Add_Or_Update"]) == )
- {
- ASPxImage1.ImageUrl = "~/Images/m5.gif";
- ASPxRoundPanel1.HeaderText = "修改";
- ASPxHiddenField1.Add("sBH2", );
- ASPxHiddenField1.Add("sBH", );
- }
- }
- .ASPxGridView单击事件:
- <ClientSideEvents FocusedRowChanged="function(s, e) { OnGridFocusedRowChanged(); }" />
- <ClientSideEvents FocusedRowChanged="function(s, e) { OnGridFocusedRowChanged(); }"></ClientSideEvents>
- <%--ASPxGridView的单击事件--%>
- .Javascript实现ASPxGridView单击事件:
- <script language="javascript" type="text/javascript">
- function OnGridFocusedRowChanged()
- {
- ASPxGridView1.GetRowValues(ASPxGridView1.GetFocusedRowIndex(), '区域号;类别号', OnGetRowValues); //前端访问控件
- }
- function OnGetRowValues(values)
- {
- hf1.Set('sBH', ASPxGridView1.GetRowKey(ASPxGridView1.GetFocusedRowIndex())); //给隐藏字段赋值
- if (hf1.Get('sBH2') == )
- {
- Com_QuYuHao.SetText(values[]);
- Com_LeiBieHao.SetText(values[]);
- }
- }
- </script>
代码实现
16.选择"区域号","类别号"后,点击"已用流水号"按钮,从数据库中读取数据加载到表单中,并弹出表单(防止刷屏问题)
- .ClientInstanceName="grid2"
- .写一个自定义函数,填充表单中的ASPxGridView:
- public void LiuShuiHao(String QuYuHao,String LeiBieHao)
- {
- String str_LiuShuiHao = "";
- if (QuYuHao != "" && LeiBieHao != "")
- {
- str_LiuShuiHao = "select * from 物料编码 where 区域号='" + QuYuHao + "' and 类别号='" + LeiBieHao + "'";
- }
- else if (QuYuHao != "")
- {
- str_LiuShuiHao = "select * from 物料编码 where 区域号='" + QuYuHao + "'";
- }
- else if (LeiBieHao != "")
- {
- str_LiuShuiHao = "select * from 物料编码 where 类别号='" + LeiBieHao + "'";
- }
- if(str_LiuShuiHao!="")
- {
- OleDbConnection conn = new myDB().getConn();
- OleDbDataAdapter da = new OleDbDataAdapter(str_LiuShuiHao, conn);
- DataSet ds = new DataSet();
- da.Fill(ds);
- this.ASPxGridView2.DataSource = ds.Tables[].DefaultView;
- this.ASPxGridView2.DataBind();
- conn.Close();
- }
- }
- .在页面的load中调用该方法:
- if (Com_QuYuHao.Text != "" || Com_LeiBieHao.Text != "")
- {
- LiuShuiHao(Com_QuYuHao.Text, Com_LeiBieHao.Text);
- }
- .按钮的前端Click事件:
- ASPxPopupControl1.Show();
- grid2.Refresh();
- e.processOnServer = false;
- 读取数据库防止—刷屏
读数据库—防止刷屏
初见,Devexpress的更多相关文章
- 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能
在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...
- DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码
前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...
- 图解DevExpress RichEditControl富文本的使用,附源码及官方API
9点半了,刚写到1.2. 该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去 ...
- DevExpress学习系列(控件篇):GridControl的基本应用
一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...
- 在DevExpress程序中使用Winform分页控件直接录入数据并保存
一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...
- 在DevExpress程序中使用TeeList控件以及节点查询的处理
在很多情况下,我们需要通过树列表进行数据的展示,如一些有层次关系的数据,通过有层级的展示,能够使用户更加直观查看和管理相关的数据.在一般Winform开发的情况下,可以使用微软的TreeView控件, ...
- 在DevExpress程序中使用内置的图标构建美观的界面元素
在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略 ...
- 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理
在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...
- 在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口
在我很早的WInform随笔<WinForm界面开发之"SplashScreen控件">有介绍如何使用闪屏的处理操作,不过那种是普通WInform和DevExpress ...
随机推荐
- Putty 工具 保存配置的 小技巧
用Putty 已经很长时间了,但一直被一个问题困扰,有时候是懒得去弄,反正也不怎么碍事,今天小研究了下,把这个问题解决了,心里也舒服了. Putty是一个免费小巧的Win32平台下的telnet,rl ...
- linux-用户建立及权限分配
1.建立用户 useradd –d /usr/test -m test 此命令创建了一个用户test,用户主目录为/usr/test 2.设置用户密码 .修改自己的密码 passwd ,需要输入旧 ...
- Codeforces Round #306 (Div. 2) A. Two Substrings 水题
A. Two Substrings Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/550/pro ...
- (转)用AGG实现高质量图形输出(三)
转自 :http://www.cnblogs.com/CoolJie/archive/2011/04/27/2030260.html 线段生成器(Span Generator) 我们前面举的例子使用的 ...
- 第1章 游戏之乐——让CPU占用率曲线听你指挥
让CPU占用率曲线听你指挥 写一个程序,让用于来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: CPU的占用率固定 ...
- ALM/QC OTA Field in Database(查询ALM数据库的字段)
在使用ALM的OTA接口编写脚本的时候,通常会需要知道各个选项在数据库中对应的字段,才能通过脚本读取或写入数据.比如要获取test case的step内容,要在测试结束时将测试实际结果写回test s ...
- keytool 错误 java.io.IOException: incorrect AVA format
给一个APK做签名,选择新建一个key并填写相关信息,但在Finish时,keytool报出了一个错误:keytool error: java.io.IOException: Incorrect AV ...
- excel 批量替换换行符
在excel批量替换换行符操作步骤: 全选需要查找换行符的范围 CTRL+H调出查找和替换 在查找内容内输入"ctrl+enter"两个组合键 点击查找全部即可. 在excel中输 ...
- linux记录登录ip方法
PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...
- Android 高级UI设计笔记22:Android 指示引导页(带圆点)
1. 引导页: 我们在安装某个软件首次运行时,大部分都会有一个引导页的提示,介绍软件新功能的加入或者使用说明等,支持滑动且下面会有几个圆点,显示共有多少页和当前图片的位置,类似如下效果: 2. 引导页 ...