关于devexpress报表XtraReport,动态修改报表样式(.repx格式),动态添加数据并使用的理解
一、基本概念:
XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见)。 因此,每个报表都作为带区的容器使用,而每个带区中都包含报表控件。XtraReports 中的每个报表都可以被绑定到数据,或者不绑定。 要创建绑定报表,则首先要把报表绑定到数据源,然后指定每个报表控件的数据绑定选项。报表控件、带区 和报表自身的所有大小和位置,都以报表内相同的单位度量。 度量单位由报表的 XtraReport.ReportUnit 属性指定,可以设置为下列类型之一:百分之一英寸:当 ReportUnit 属性值被设置为 ReportUnit.HundredthsOfAnInch 时使用。 十分之一毫米:当 ReportUnit 属性值被设置为 ReportUnit.TenthsOfAMillimeter 时使用。
二、页面构建时用到的事件
Before Print:
在 预览/打印/导出 报表期间,在 XRControl 对象创建其图像之前,XRControl.BeforePrint 事件发生,主要用于以程序方式改变报表的属性、带区的属性、以及存放在 DetailBand 细节带区中的控件的属性。
在此事件中可以执行大部分任务 (例如改变 XRControl.Visible、XRControl.BackColor、XRControl.BorderColor 以及其他属性),可以被轻松执行,而 无需编写代码,只是使用 格式设置规则。 此外,BeforePrint 事件可以被接管,从而重新指派控件的样式,并且调整其 XRControl.LocationF 属性。
在 BeforePrint 事件中,可以使用 XtraReportBase.GetCurrentColumnValue 方法为数据绑定控件获取数据列的当前值。 注意,在此事件中,修改控件的绑定信息就太迟了。 因此,对于数据绑定控件,可以只调整其静态文本。
示例代码:
private void xrLabel1_BeforePrint(object sender, PrintEventArgs e)
{
if (Convert.ToDouble(this.GetCurrentColumnValue("UnitPrice")) > 30) {
XRControl control = this.FindControl("xrLabel1", true);
control.LocationF = new PointF(15F, 15F);
control.Styles.Style = this.StyleSheet[0];
}
}
三、报表结构
整个报表是由多个绑定带区组成,绑定带区如下:
| 
 绑定带区  | 
 说明  | 
| 
 TopMarginBand  | 
 每个页面上面都显示的空白(天头),在PageHeaderBand或者ReportHeaderBand上面  | 
| 
 ReportHeaderBand  | 
 在报表起始位置(报表头), 此带区被设计用于显示某些概述信息,例如报表的封面。  | 
| 
 PageHeaderBand  | 
 在每个页面的上方(页眉),在TopMarginBand或者ReportHeaderBand下方  | 
| 
 GroupHeaderBand  | 
 在每组的起始位置,或者在分跨多个页时而位于组的上方(分组标头)。 此带区指定分组标准,并被用于显示每组记录起始位置的信息  | 
| 
 DetailBand  | 
 在页面上所有其他带区之间(细节)。 此带区每行只显示绑定数据源中的一条记录,或者当没有为报表指定数据源时而简单地持有非绑定控件。  | 
| 
 DetailReportBand  | 
 在DetailBand的下方(从表),被设计用于在创建主/从报表时持有从报表  | 
| 
 GroupFooterBand  | 
 在每组的结束位置,或者在分跨多个页时而位于组的下方(分组脚注)。 此带区主要被设计用于显示每组的总结信息。  | 
| 
 ReportFooterBand  | 
 在报表结束位置(报表脚注)。 此带区被设计用于显示某些终极信息,例如报表总结。  | 
| 
 PageFooterBand  | 
 在每个页面的下方(页脚)在ReportFooterBand下方和BottomFooterBand上方,此带区被设计用于从之前页面接续的页码或表尾  | 
| 
 BottomMarginBand  | 
 每个页面底部的空白(地脚),在PageFooterBand的下方。  | 
四、报表常用属性
| 
 属性  | 
 说明  | 
| 
 BackColor  | 
 设置报表控件的背景色  | 
| 
 Bands  | 
 报表包含的带区,用于放置各种控件(集合)  | 
| 
 BorderColor  | 
 报表中控件边框颜色  | 
| 
 BorderDashStyle  | 
 报表中控件边框样式  | 
| 
 Borders  | 
 报表中控件边框  | 
| 
 BorderWidth  | 
 边框宽度  | 
| 
 CalculatedFiled  | 
 计算字段,主要被用于 data-aware(数据感知) 报表中(集合)  | 
| 
 DataAdapter  | 
 数据源Adapter对象  | 
| 
 DataMember  | 
 数据源中用于绑定报表的具体表  | 
| 
 DataSource  | 
 报表数据源  | 
| 
 DataSourceSchema  | 
 指定数据源框架文件(XML/XSD文件)  | 
| 
 DesignerOptions  | 
 ShowDesignerHints(bool):设计时显示提示 ShowDesignerWarnings(bool):设计时显示警告提示 ShowPrintingWarnings(bool):打印提示  | 
| 
 DetailPrintCount  | 
 设置打印的页数  | 
| 
 DetailPrintCountOnEmptyDataSource  | 
 当数据源为空时打印的次数  | 
| 
 DrawGrid(bool)  | 
 设置是否要绘制对齐网格  | 
| 
 ExportOptions  | 
 用于设置报表导出时的相关属性(集合)  | 
| 
 FilterString  | 
 报表数据过滤字符串  | 
| 
 PageColor  | 
 报表页面颜色  | 
| 
 FormattingRules  | 
 设置格式化样式  | 
| 
 FormattingSheet  | 
 格式化样式集合  | 
| 
 PagerKind  | 
 设置纸张类型  | 
| 
 Parameters  | 
 设置报表参数  | 
| 
 PrintOnEmptyDatasource(bool)  | 
 设置当数据源为空时是否打印  | 
| 
 RequestParameters(bool)  | 
 设置是否在参数Submit后再创建报表  | 
| 
 SnapGridSize  | 
 设置报表对齐网格大小  | 
| 
 SnappingModel  | 
 设置对齐模式(SnapToLines&SnapToGrid)  | 
| 
 SnapToGrid(bool)  | 
 设置是否对齐到网格  | 
| 
 StyleSheet  | 
 设置控件引用的样式  | 
| 
 StyleSheetPath  | 
 设置引用外部样式文件  | 
| 
 TextAlignment  | 
 设置报表字体对齐方式  | 
| 
 Watermark  | 
 (属性集合)用于设置报表的水印,包括图片和文字  | 
| 
 XmlDataPath  | 
 设置数据源为Xml文件的数据源路径  | 
五、报表控件
报表控件在Web应用程序中分为Web页面控件和报表设计控件
1.Web页面控件
| 
 控件  | 
 说明  | 
| 
 ReportDocumentMap  | 
 用于在Web页面显示报表中的书签,需要指定该控件的ReportViewer属性。  | 
| 
 ReportParameterPanel  | 
 用于Web页面传递参数给报表,需要指定该控件的ReportViewer属性。  | 
| 
 ReportViewer  | 
 用于Web页面呈现报表,需指定该控件的Report属性为要显示的报表实例。  | 
| 
 ReportToolbar  | 
 与ReportViewer控件配合使用,实现翻页,打印,导出等功能。  | 
2.报表设计时控件:
| 
 控件  | 
 说明  | 
| 
 XRLabel  | 
 标签控件,允许把单行或多行文本插入到报表中。此文本可能是静态的,也可能是动态绑定。  | 
| 
 XRCheckBox  | 
 复选框控件,被设计用于在报表中显示 True/False 或 选中/未选中/不确定 状态。  | 
| 
 XRRichText  | 
 富文本控件,被设计用于显示、输入和操作设置格式的文本。  | 
| 
 XRPictureBox  | 
 图片框控件,用于显示报表中的图像。  | 
| 
 XRPanel  | 
 面板控件,可以包含其他报表控件。  | 
| 
 XRTable  | 
 表格控件,用于插入表格 (包括行和单元格)。  | 
| 
 XRLine  | 
 线条控件,用于在报表中绘制垂直线、水平线或斜线。  | 
| 
 XRShape  | 
 形状控件,用于把简单的图形嵌入到报表中。  | 
| 
 XRBarCode  | 
 条形码控件,允许把许多不同的条形码类型插入到报表中。  | 
| 
 XRZipCode  | 
 邮政编码控件,允许把表示邮政编码的数字插入到报表中。  | 
| 
 XRChart  | 
 图表控件,可以用于以图形视图呈现数据。  | 
| 
 XRPivotGrid  | 
 透视网格控件,用于以交叉表的形式呈现下层数据源中的数据,从而创建交叉表报表。  | 
| 
 XRPageInfo  | 
 显示某些辅助信息的控件。 使用此控件可以在报表中显示页码、当前日期或用户信息。  | 
| 
 XRPageBreak  | 
 分页符控件,用作标记报表应开始新页面。  | 
| 
 XRCrossBandLine  | 
 可以跨多个带区的线条控件。  | 
| 
 XRCrossBandBox  | 
 可以跨多个带区的方框控件。  | 
| 
 XRSubReport  | 
 子报表控件,用于显示子报表。  | 
六、报表类型
- 静态报表 是简单呈现某些静态信息的报表。 这种报表通常不绑 到数据源,并且在一页上显示单个控件或一组控件。如果需要多次重复相同的报表内容,那么使用 XtraReportBase.DetailPrintCount 属性。
 - 表格报表 是以表格形式呈现信息的报表。 这些信息被存储在报表的绑定数据源中(也可以运行时从数据库中读取),并且通常此数据源不分层级 (例如,只包含一个数据表)。使用 XRTable 控件,并且绑定表格的单元格来呈现数据源中的数据;
 - 主从报表如果某个报表被用于显示分层级的数据源中的数据,则通常把它称为 主/从 报表。创建主/从报表的两种主要方法。 第一种方法: 是以使用 从报表带区为基础(使用DetailReportBand带区),当数据源包含主实例和从实例之间的 ADO.NET 关系时,使用这种方法使用。 第二种方法:是创建两个不同的报表类,并且把从报表作为子报表而合并到主报表中(使用XRSubReport控件,指定此控件的ReportSource属性为子报表)。
 - 多栏报表 是以多个列或行 (取决于当前的多栏设置) 呈现数据的报表。 这种报表是有用的,例如,当每个细节带区都只显示少量数据、并且需要在一列的右侧打印下一个细节带区的外观时,这样就能充分利用整个页面宽度。 此外,当创建有相同内容的 卡片或邮寄地址签、并且需要在许多报表页面上打印大量相同尺寸的卡片时,多栏报表也是有用的。
 
由于多栏布局主要影响报表的细节带区,因此可以通过 Detail 带区的 DetailBand.MultiColumn 属性来指定多栏模式。 要启用多栏模式,则把 MultiColumn.Mode 属性设置为除去 None 之外的其他取值
栏数固定,栏宽度相同并且被自动计算。
为此,应该把 MultiColumn.Mode 属性设置为 MultiColumnMode.UseColumnCount,并把 MultiColumn.ColumnCount 属性设置为所需的栏数。
自动计算栏数,所有栏的宽度都是相同的固定宽度。
为此,应该把 MultiColumn.Mode 属性设置为 MultiColumnMode.UseColumnWidth,并且把 MultiColumn.ColumnWidth 属性设置为所需的栏宽度。
- 交叉表报表 是以交叉表形式呈现信息的报表。 交叉表 (或透视表) 类似于简单的普通 数据绑定表格,但是改为在单个表格中呈现多维的分层级的信息,并含有每行和每列的自动排序、计数、合计和累计。使用XRPivotGrid控件,并为此控件指定数据源、绑定字段到列,同时要保证报表的数据源为NULL,如果两者使用相同的数据源,那么XRPivotGrid控件将被打印与数据源行数相同的次数。
 - 6. 并列报表在报表中显示两栏相同的或者不同的信息,主要依赖于XRSubReport控件。
 - 7. Drill-Through 报表类似于主从报表,但是子报表是通过超链接来访问的。超链接的设置将在下面数据绑定部分介绍。
 - 8. 邮件合并报表试图创建 e-mail 模板时,经常会遇到困难。 在这些模板中,某些文本是不变的,某些字段 (通常被使用预定义的标记括起来) 应该在创建文档时填充来源于数据库的数据。 此项功能也被称为 邮件合并,并且使用 XtraReports 可以轻松实现。
 
大体上,要创建嵌入字段,则需要把由 [中括号] 括起的数据字段名称插入到控件的文本中,如果在当前的数据上下文中,字段是有效的,那么当报表被预览或导出时,它将被替换为一个适当的数据值。
- 9. 标签报表此报表与多栏报表相类似。
 
七、报表数据源
1.数据源
通过 XtraReport 对象的 XtraReportBase.DataSource 属性把它绑定到数据源,而与特定的数据源类型和所使用的数据绑定方法无关。 唯一的例外是当使用 XML 数据源时,需要指派到 XtraReportBase.XmlDataPath 属性,同时要求把 XtraReportBase.DataSource 属性设置为 null。
2.绑定数据的方法
2.1.使用 .NET 数据提供程序绑定报表
这种方法意味着数据被存储在数据库中。 使用已提供的两种数据适配器组件之一,就可以把报表绑定到这种数据:
OleDbDataAdapter,使用 OLE DB 访问公开的数据源;
SqlDataAdapter,被设计用于使用由 Microsoft SQL Server 7.0 或后续版本提供的数据源。
这些数据适配器都使用连接对象来绑定数据,并且能够生成包含数据表的 DataSet 对象。 然后通过把数据表 (或绑定到表的数据视图) 直接指派到 XtraReportBase.DataSource 属性,它们就可以被绑定报表。 也可以把生成的 DataSet 对象指派到 XtraReportBase.DataSource 属性,并且使用 XtraReportBase.DataAdapter 属性来指定数据适配器的名称。
2.2.把报表绑定到 List
在运行时刻创建的数据对象必须支持 IList、ITypedList 或 IBindingList 接口,并且被指派到 XtraReportBase.DataSource 属性。 注意,你不需要创建自定义的数据源对象。 例如,可以在运行时刻使用填充了数据的 DataTable 对象。
2.3.把报表绑定到 XML 数据
这种方法使用存储在 XML 文件中的数据。 可以以两种方式之一来访问这种数据。把 XtraReportBase.DataSource 属性值设置为根据 XML 文件创建的数据集; 直接把 XML 文件指派到 XtraReportBase.XmlDataPath 属性。
八、数据绑定与报表预览
1.设计时绑定
在设计时绑定数据源,需要把相应的数据源添加到应用程序中,即在应用程序中添加DataSet程序集,然后在报表设计界面,把报表的数据源指定到相应的数据集上,打开Field List字段列表,将相应的字段用鼠标拖到相应的控件上即可。点击Preview 即可预览报表。
2.运行时绑定
在运行时绑定数据源,更具灵活性,它可以根据需要从数据库中读取有用的数据来呈现在报表上。对于运行时绑定数据源,其数据绑定操作要在报表的构造函数中完成。在报表设计器中只需把相应的控件放置好即可。报表控件中都有一个DataBindings属性,此属性的Add方法可以把数据绑定到控件上。
示例代码:
Void DataBind()
{
DataSource=tb // tb为DataTable
xrLabel1.DataBinds.Add(”Text”,null,”Column1”);
xrLabel2.DataBinds.Add(”Text”,null,”Column2”,”FormatString:{0}”);
}
在报表的构造函数中调用以上方法就可以将数据绑定到xrLabel上,其中Add方法有两个重载:
Control.DataBinds.Add(控件属性,数据源,绑定字段)
Control.DataBinds.Add(控件属性,数据源,绑定字段,格式化设置)
每个控件可绑定的属性可能有所不同,可以通过该控件的DataBinds属性来查看。
3.Chart控件绑定
Chart控件与PivotGrid控件都需要独立指定数据源,同时,如果这两个控件被放置Detail带区中,报表不能指定数据源,不然,该控件将被显示与报表数据源行数相同的次数。
对与Chart控件的数据绑定,要把相应字段绑定到对应的Series上,ArgumentDataMember为X轴绑定字段,ValueDataMembersSerializable为Y轴字段。
一个图表中可以有多个Series,可以通过Series索引或者Name来找到相应的Series.Chart控件中Series集合表示图表,Titles集合是对应Series的标题。
示例代码:
protected void DataBind()
{
string sqlStr = "select UnitPrice,ProductName from ProductSales group by ProductName,UnitPrice";
this.xrChart1.DataSource = helper.getDataTable(sqlStr);
this.xrChart1.Series[0].ArgumentDataMember = "ProductName";
this.xrChart1.Series[0].ValueDataMembersSerializable = "UnitPrice";
this.xrChart1.Series[0].Name = "Price";
this.xrChart1.Series[0].LegendPointOptions.PointView = PointView.Argument;
his.xrChart1.Legend.Visible = false;
}
九、数据呈现
由于数据源提供方式分为设计时与运行时,所以数据呈现也有所不同。对于运行时提供数据源的报表,分组、排序都需要通过代码添加到报表中,而设计时提供数据源则可以直接通过图形化界面进行设置。
1.数据分组与排序
运行时分组需要在数据绑定函数中加入如下代码:
this.GroupHeader1.GroupFields.Add(new GroupField("StudentID",XRColumnSortOrder.Descending));
GroupField的两个参数分别为分组字段,排序方式。
2.数据筛选
2.1.在报表级筛选
在报表中添加Parameters属性中添加筛选参数,并设置筛选条件,在Web页面上Parameters中的参数列表将被显示在ReportParameterPanel控件中,报表中添加参数以后,默认状态预览报表需要点击Submit后报表才被创建,若要不提供参数也创建报表,需要将报表的RequestParameters属性设置为false。
2.2.在数据源级筛选
在数据级筛选数据,主要是通过SQL语句的where条件,要将Where条件的参数传递到报表类中,可以通过报表的构造函数,其他方式有待研究。同时结合在报表级的数据筛选,可以方便点的在页面上呈现出需要的数据。
3.数据格式化
通过控件的FormatString属性可以根据需要设置相应的格式化输出样式。通过控件的Summary属性来设置各种统计功能。
十、外观设置
1.外观属性
外观属性如下表:
| 
 属性  | 
 说明  | 
| 
 BackColor  | 
 获取或设置报表元素及其子控件的背景色  | 
| 
 BorderColor  | 
 获取或设置报表元素及其子控件的边框色。  | 
| 
 BorderDashStyle  | 
 获取或设置报表元素及其子控件的边框虚线样式。  | 
| 
 Borders  | 
 获取或设置报表元素及其子控件的可视边框 (上、右、下、左)。  | 
| 
 BorderWidth  | 
 获取或设置报表元素及其子控件的边框宽度。  | 
| 
 Font  | 
 获取或设置报表元素及其子控件的字体选项 (字体名称、大小等)。  | 
| 
 ForeColor  | 
 获取或设置报表元素及其子控件的前景色。  | 
| 
 Padding  | 
 获取或设置用于绘制报表元素及其子控件内容的缩进量。  | 
| 
 TextAlignment  | 
 获取或设置报表元素及其子控件的文本对齐方式。  | 
2.样式
2.1奇偶行样式
它允许在视觉上把报表中连续的数据字段划分开,从而有更好的可读性。 要把这些样式应用于控件,则应该使用其 XRControl.OddStyleName 和 XRControl.EvenStyleName 属性。
2.2.样式表
在设计时刻可以使用 Styles Editor(样式编辑器) 来管理报表的样式表、定制样式表、存储到文件以及从文件中加载。 因此,可以创建多个样式表,并且在设计时刻或运行时刻加载。保存报表的样式表的方式有两种。 第一种方式是保存为外部文件 (有 REPSS 扩展名),然后使用 XtraReport.StyleSheetPath 属性,以只读模式加载到报表 (这种方式在 如何: 创建和存储报表样式表 主题中进行了描述)。 第二种方式是把样式表存储在报表内 (使用 XtraReport.StyleSheet 属性),因此可以按照需要进行修改,并和报表本身一起被保存。
3.附条件格式设置
通过控件的FormattingRuls属性设置格式化规则,当满足该规则时,将以定义的样式显示该行数据。同一个报表的FormattingRules被放置在FormattingRulesSheet属性中。
十一、交互导航
1.超链接
示例代码:
为xrLabel添加超链接
xrLabel.DataBinds.Add(“NavigateUrl”,null,”Colunm”,”http://www.quantacn.com?id={0}”);
解释:在报表已指定数据源的情况下(设计时或者运行时)可以用以上方法对控件绑定NavigateUrl属性,同时格式化Url地址与要穿的的参数。
2.文档地图
在报表中若设置了Bookmark属性,报表将生成文档地图,在Web页面中用ReportDocumentMap控件来显示。
示例代码:
为xrPanel添加文档地图
xrPanel.DataBinds.Add(“Bookmark”,null,”Column”,”FormatString:{0}”);
十二、其他
不使用ReportToolBar来打印,导出报表。
步骤:
1.在web页面设置ReportViewer控件的ClientInstanceName属性(例如:viewer)
2.添加ASPxButton控件到web页面
3.点击ASPxButton控件的智能标签,取消AutoPostBack,点击Client-Side-Events;
4.在Click事件中添加如下代码
function(s, e) {
viewer.SaveToDisk(‘PDF’); //保存为PDF格式
viewer.Print(); //打印报表
}
十三、动态修改报表样式:
1.在初始报表中保存修改后的.repx文件并保存在某一个目录下
2.通过创建对象添加新的报表样式得到报表
报表.XtraReport1 xtpt = new 报表.XtraReport1(this);
            xtpt.LoadLayout(Application.StartupPath + @"\测试.repx");
            xtpt.SetDataBind();           //自己写函数绑定数据源
            xtpt.ShowPreview();
3.对数据源的绑定有三种
(1)可重构构造函数,将主窗口对象传入,然后具体值进行对应,此不需要绑定数据源
public XtraReport1(Form1 form1)
        {
//代码
}
(2)通过构造函数绑定数据源
public XtraReport1(Dateset s)
{
//代码
}
(3) 通过直接调用函数进行值的传入
public void SetDataBind()
        {
            xrTableCell6.Text = this.thisForm.wd.Text;
        }
不过再此需要将主窗口作为对象传入到报表中
注意:在这里千万要注意,首先要将报表样式添加如:xtpt.LoadLayout(Application.StartupPath + @"\测试.repx");然后进行绑定数据源,不然会出现样式将数据覆盖而无法实现动态添加数据的情况。
关于devexpress报表XtraReport,动态修改报表样式(.repx格式),动态添加数据并使用的理解的更多相关文章
- ASP.NET中直接用C# 动态修改CSS样式
		
ASP.NET中直接用C# 动态修改CSS样式 wonsoft (wonsoft@163.com) 使用JavaScript控制CSS样式有点麻烦,还是觉得直接使用C#操作更方便快捷,本文通过两个B ...
 - JS笔记一:动态修改css样式
		
---恢复内容开始--- 最近在学习CSS/JS的样式,两个合学习一起学习,加深JS的书写和了解. 一.通过Javasript修改图片大小 通过函数来传递图片id,height,width,使用doc ...
 - javascript 动态修改css样式方法汇总(四种方法)
		
在很多情况下,都需要对网页上元素的样式进行动态的修改.在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用.效果.以及缺陷. 1.使用obj.className来修改样式表的类名. ...
 - 微信小程序通过js动态修改css样式的方法(交流QQ群:604788754)
		
WXML <view class="page" style="background-color:{{pageBackgroundColor}}" > ...
 - javascript 动态修改css样式
		
方法一:改变外联css文件,这里不讲这个. 方法二:通过改变claaName来改变样式,语法: obj.className = "style2"; //或者 obj.setAttr ...
 - Extjs 动态修改gridPanel列头信息以及store数据的方法
		
1 /*******************************checkbox按钮 历史报警信息**************************************/ var check ...
 - 因为要生成的折线数量是不定的 ,所以需要echarts 动态的为option中的Series添加数据
		
series:function(){ var serie=[]; var aa = zhonglei[0].split(","); for( var i=0;i < aa.l ...
 - 微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等
		
一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元 ...
 - 周记5——随机撒花特效、动态修改伪元素样式、contenteditable属性、手机端调试利器VConsole、浏览器端debug调试
		
记录一些小零碎知识点,以便日后查看~ 1.随机撒花特效 教师节快到了,公司的产品提出一个需求:在IM(即时聊天)聊天界面弹出教师节的祝福“广告”,用户点击“发送祝福”按钮,聊天界面会随机撒花.这里的重 ...
 
随机推荐
- idea常用的快捷键(黑马培训班)
			
idea常用的快捷键 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 Alt+Ins ...
 - 百度小程序上传失败 ServerError:30010的原因
			
最近通过uniapp编译百度智能小程序后上传遇到了报错,错误码为30010. 原因很简单开发者工具和版本库产生了冲突. 两个解决方案,升级开发者工具,降低发布时的版本库 exit;
 - IDEA的一个设置, 关系到maven的运行, 默认是使用jre的, 有时候不够用需要改成jdk
 - Centos下Redis集群的搭建实现读写分离
			
Centos下Redis一主多从架构搭建 搭建目标:因为自己笔记本电脑配置较低的原因,模拟两台机器之间搭建一主一从的架构,主节点Redis主要用来写数据,数据写入到主节点的Redis,然后从节点就可以 ...
 - django  RetrieveModelMixin 查询字段替换
			
mixins 中RetrieveModelMixin 获取当个实例 其中的主键pk获取,可以通过lookup_field 如:要换成用username字段进行查询 注:替换的字段要有唯一约束 look ...
 - T-SQL行列相互转换命令:PIVOT和UNPIVOT使用详解
			
最近在维护一个ERP 做二次开发 ,在查找数据源的时候看到前辈写的SQL ,自己能力有限 ,就在网上找找有关这几个关键字的使用方法.做出随笔以做学习之用 T-SQL语句中,PIVOT命令可以实现数据表 ...
 - gitlab-runner 安装使用
			
gitlab-runner 安装使用 gitlab-runner 是一个开源的与 gitlab CI 配合使用的项目,用于运行任务,并将结果返回 gitlab 本文通过docker in docker ...
 - 记一次在 Get 请求参数为 Null 值的折腾
			
先说主要原因,是因为一个 NgZerro 的 Select 组件,需要显示 placeHolder 文字,初始值为 null,然后直接绑定到查询参数中,传输到后端导致 BadRequest,参数解析失 ...
 - [转]HTTP Error 500.21 - Internal Server Error Handler "ExtensionlessUrlHandler-Integrated-4.0" has a bad module "ManagedPipelineHandler" in its module list
			
1.错误 HTTP Error 500.21 - Internal Server Error Handler "ExtensionlessUrlHandler-Integrated-4.0& ...
 - js  json数据保存到本地
			
转自:https://www.cnblogs.com/gamedaybyday/p/9906542.html 使用HTML5来实现本地文件读取和写入 (FileReader读取json文件,File ...