【绥江一百】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的更多相关文章

  1. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  2. DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码

    前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...

  3. 图解DevExpress RichEditControl富文本的使用,附源码及官方API

    9点半了,刚写到1.2.   该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去 ...

  4. DevExpress学习系列(控件篇):GridControl的基本应用

    一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...

  5. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  6. 在DevExpress程序中使用TeeList控件以及节点查询的处理

    在很多情况下,我们需要通过树列表进行数据的展示,如一些有层次关系的数据,通过有层级的展示,能够使用户更加直观查看和管理相关的数据.在一般Winform开发的情况下,可以使用微软的TreeView控件, ...

  7. 在DevExpress程序中使用内置的图标构建美观的界面元素

    在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略 ...

  8. 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

    在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...

  9. 在DevExpress程序中使用SplashScreenManager控件实现启动闪屏和等待信息窗口

    在我很早的WInform随笔<WinForm界面开发之"SplashScreen控件">有介绍如何使用闪屏的处理操作,不过那种是普通WInform和DevExpress ...

随机推荐

  1. linux-用户建立及权限分配

    1.建立用户   useradd –d /usr/test -m test 此命令创建了一个用户test,用户主目录为/usr/test 2.设置用户密码 .修改自己的密码 passwd ,需要输入旧 ...

  2. 系列文章--精通CSS.DIV网页样式与布局学习

    精通CSS.DIV网页样式与布局(八)——滤镜的使用 精通CSS.DIV网页样式与布局(七)——制作实用菜单 精通CSS.DIV网页样式与布局(六)——页面和浏览器元素 精通CSS.DIV网页样式与布 ...

  3. Eclipse和Android Studio中的DDMS使用时什么不同?

    http://www.jb51.net/softjc/454131.html Eclipse和Android Studio中的DDMS使用时什么不同? 相信很多经常开发Android应用的朋友应该都接 ...

  4. hdu1213 How Many Tables

    How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. 搭建Spring + SpringMVC + Mybatis框架之二(整合Spring和Mybatis)

    整合Spring和Mybatis 首先给出完整的项目目录: (1)引入项目需要的jar包 使用http://maven.apache.org作为中央仓库即可. Spring核心包,mybatis核心包 ...

  6. char.js专门用来做数据统计图

    <canvas id="cashback" width="930" height="460"></canvas>&l ...

  7. 【剑指offer】递归循环两种方式反转链表

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25737023 本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上AC. 题目描写 ...

  8. Matlab程序怎样打包

    本人安装的版本号是MATLAB(R2010b) 打包过程例如以下: MATLAB命令窗体输入deploytool,打开一个Eeployment Project的窗体: 1.在Name输入你想要打包后的 ...

  9. 文件写入文件分布式系统(asp.net C#)

    ) { try { System.Drawing.Image img = System.Drawing.Image.FromStream(fileData.InputStream); &&am ...

  10. 配置apache、php、mysql之间的关系

    1.index.php文件放入/usr/local/apache2/htdocs 目录下 其中index.php里面内容为: <?php phpinfo(); $dbc= mysql_conne ...