初见,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 ...
随机推荐
- WinSock异步IO模型之Select
如果你想在Windows平台上构建服务器应用,那么I/O模型是你必须考虑的. Windows操作系统提供了五种I/O模型,分别是: ■ 选择(select): ■ 异步选择(WSAAsyncSelec ...
- 动态链接库 仅有.dll文件时候的使用方法
在没有.h和.lib文件时,需要函数指针和WIN32 API函数 LoadLibrary, GetProcAddress 和FreeLibrary 只需要.dll文件即可(将.dll文件置入工程目录中 ...
- 创建C#串口通信程序详解
在.NET平台下创建C#串口通信程序,.NET 2.0提供了串口通信的功能,其命名空间是System.IO.Ports.这个新的框架不但可以访问计算机上的串口,还可以和串口设备进行通信.我们将使用标准 ...
- 一步步学Mybatis-实现单表情况下的CRUD操作 (3)
今天这一章要紧接上一讲中的东西,本章中创建基于单表操作的CRUD与GetList操作,此示例中以Visitor表为范例,为了创建一点测试数据我们先弄个Add方法吧 继续在上次的IVisitorOper ...
- [Angular2 Router] Exiting an Angular 2 Route - How To Prevent Memory Leaks
In this tutorial we are going to learn how we can accidentally creating memory leaks in our applicat ...
- [AngularJS] TweenList 3D + AngularJS Animate
AngularJS animations and TweenLite make it really easy to create cool 3d effects in your application ...
- [Angular-Scaled Web] 7. Refactor code into Models
In the previous code, both categories and bookmarks are binded to $rootscope, or let says the same s ...
- MySQL--索引条件下推优化
http://blog.163.com/li_hx/blog/static/1839914132015782821512/ 一 什么是“索引条件下推” “索引条件下推”,称为 Index Condit ...
- IPC——信号
Linux进程间通信——使用信号 一.什么是信号 用过Windows的我们都知道,当我们无法正常结束一个程序时,可以用任务管理器强制结束这个进程,但这其实是怎么实现的呢?同样的功能在Linux上是通过 ...
- cocos2d-x在android下的编译
$(call import-add-path,E:/cocos2d-2.0-x-2.0.3) include $(BUILD_SHARED_LIBRARY) http://www.cnblogs.co ...