(转载)DevExpress ASPxGridView 使用文档六:模板
转载请注明出处:http://surfsky.cnblogs.com/
---------------------------------------------------------
-- ASPxGridView 模板
---------------------------------------------------------
ASPxGridView 提供以下几种自定义的模板视图
EditForm 编辑窗口。弹出式或附加在原记录下面
DetailRow 详细行。点击后以form方式查看记录的详细信息
PreviewRow 预览行。原记录下进行简短描述
DataRow 数据行视图。每一行的内容位置都是定制的。
注:列模板请参考文档《ASPxGridView.Column》
数据行模板(DataRow, 类似ListView 卡片视图)
<dxwgv:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" DataSourceID="AccessDataSource1" KeyFieldName="EmployeeID" Width="100%">
<Columns>
<dxwgv:GridViewDataColumn FieldName="FirstName" VisibleIndex="1" />
<dxwgv:GridViewDataColumn FieldName="Title" VisibleIndex="4" />
<dxwgv:GridViewDataColumn FieldName="Notes" Visible="False" />
<dxwgv:GridViewDataColumn FieldName="LastName" VisibleIndex="2" />
<dxwgv:GridViewDataColumn FieldName="BirthDate" VisibleIndex="3"/>
<dxwgv:GridViewDataColumn FieldName="HireDate" VisibleIndex="5"/>
</Columns>
<SettingsPager PageSize="5" />
<Templates>
<DataRow>
<div style="padding:5px">
<table class="templateTable" cellpadding="2" cellspacing="1" >
<tr>
<td rowspan="4"><img alt="" src="CardView.aspx?Photo=<%# Eval("EmployeeID")%>"/></td>
<td class="templateCaption">First Name</td>
<td><%# Eval("FirstName") %></td>
<td class="templateCaption">Last Name</td>
<td><%# Eval("LastName")%></td>
</tr>
<tr>
<td class="templateCaption">Title</td>
<td colspan="3"><%# Eval("Title")%></td>
</tr>
<tr>
<td class="templateCaption">Birth Date</td>
<td ><%# Eval("BirthDate")%></td>
<td class="templateCaption">Hire Date</td>
<td><%# Eval("HireDate")%></td>
</tr>
<tr>
<td colspan="4" style="white-space:normal"><%# Eval("Notes") %> </td>
</tr>
</table>
</div>
</DataRow>
</Templates>
</dxwgv:ASPxGridView>
编辑表单模板(EditForm)
示例一:两个标签页,一个用标准的编辑面板,一个展示memo字段
<Templates>
<EditForm>
<div style="padding:4px 4px 3px 4px">
<dxtc:ASPxPageControl runat="server" ID="pageControl" Width="100%">
<TabPages>
<dxtc:TabPage Text="Info" Visible="true">
<Controls>
<dxwgv:ASPxGridViewTemplateReplacement ID="Editors" ReplacementType="EditFormEditors" runat="server"></dxwgv:ASPxGridViewTemplateReplacement>
</Controls>
</dxtc:TabPage>
<dxtc:TabPage Text="Notes" Visible="true">
<Controls>
<dxe:ASPxMemo runat="server" ID="notesEditor" Text='<%# Eval("Notes")%>' Width="100%" Height="93px"></dxe:ASPxMemo>
</Controls>
</dxtc:TabPage>
</TabPages>
</dxtc:ASPxPageControl>
</div>
<div style="text-align:right; padding:2px 2px 2px 2px">
<dxwgv:ASPxGridViewTemplateReplacement ID="UpdateButton" ReplacementType="EditFormUpdateButton" runat="server"></dxwgv:ASPxGridViewTemplateReplacement>
<dxwgv:ASPxGridViewTemplateReplacement ID="CancelButton" ReplacementType="EditFormCancelButton" runat="server"></dxwgv:ASPxGridViewTemplateReplacement>
</div>
</EditForm>
</Templates>
protected string GetMemoText() {
ASPxPageControl pageControl = grid.FindEditFormTemplateControl("pageControl") as ASPxPageControl;
ASPxMemo memo = pageControl.FindControl("notesEditor") as ASPxMemo;
return memo.Text;
}
protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) {
e.NewValues["Notes"] = GetMemoText();
}
protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) {
e.NewValues["Notes"] = GetMemoText();
}
示例二
<Templates>
<EditForm>
<div style="padding:4px 4px 3px 4px">
<table>
<tr>
<% if(!grid.IsNewRowEditing) { %>
<td rowspan="4">
<div style="border: solid 1px #C2D4DA; padding: 2px;"><img alt="" src="TwoWayBinding.aspx?Photo=<%# Eval("EmployeeID")%>" /></div>
</td>
<% } %>
<td style="white-space:nowrap">First Name</td>
<td style="width:50%"><dxe:ASPxTextBox runat="server" ID="edFirst" Text='<%# Bind("FirstName") %>' Width="100%" /> </td>
<td style="white-space:nowrap">Last Name</td>
<td style="width:50%"><dxe:ASPxTextBox runat="server" ID="edLast" Text='<%# Bind("LastName") %>' Width="100%" /> </td>
</tr>
<tr>
<td>Title</td>
<td style="width:100%" colspan="3"><dxe:ASPxTextBox runat="server" ID="edTitle" Text='<%# Bind("Title") %>' Width="100%" /> </td>
</tr>
<tr>
<td style="white-space:nowrap">Birth Date</td>
<td style="width:50%"><dxe:ASPxDateEdit runat="server" ID="edBirth" Value='<%# Bind("BirthDate") %>' Width="100%" /> </td>
<td style="white-space:nowrap">Hire Date</td>
<td style="width:50%"><dxe:ASPxDateEdit runat="server" ID="edHire" Value='<%# Bind("HireDate") %>' Width="100%" /> </td>
</tr>
<tr>
<td colspan="4">
<dxe:ASPxMemo runat="server" ID="edNotes" Text='<%# Bind("Notes")%>' Width="100%" Height="100px" />
</td>
</tr>
</table>
</div>
<div style="text-align:right; padding:2px 2px 2px 2px">
<dxwgv:ASPxGridViewTemplateReplacement ID="UpdateButton" ReplacementType="EditFormUpdateButton" runat="server" />
<dxwgv:ASPxGridViewTemplateReplacement ID="CancelButton" ReplacementType="EditFormCancelButton" runat="server" />
</div>
</EditForm>
</Templates>
预览行模板(PreviewRow)
<Templates>
<PreviewRow>
<table style="border:none">
<tbody>
<tr>
<td style="width:25%;border:none;color:Black"><img alt="" src="Preview.aspx?Photo=<%# Eval("EmployeeID")%>"/></td>
<td style="border:none;"><%# Container.Text %></td>
</tr>
</tbody>
</table>
</PreviewRow>
</Templates>
细节行模板(DetailRow: 主从视图Master-Detail)
<dxe:ASPxCheckBox ID="chkSingleExpanded" runat="server" Text="Keep a single expanded row at a time" AutoPostBack="true" OnCheckedChanged="chkSingleExpanded_CheckedChanged" />
<dxwgv:ASPxGridView ID="grid" ClientInstanceName="grid" runat="server" DataSourceID="masterDataSource" KeyFieldName="CustomerID">
<Columns>
<dxwgv:GridViewDataColumn FieldName="ContactName" />
<dxwgv:GridViewDataColumn FieldName="CompanyName" />
<dxwgv:GridViewDataColumn FieldName="City" />
<dxwgv:GridViewDataColumn FieldName="Country" />
</Columns>
<Templates>
<DetailRow>
联系电话: <b><%# Eval("Phone")%></b>, 传真: <b><%# Eval("Fax")%></b><br/>
<dxwgv:ASPxGridView ID="detailGrid" runat="server" DataSourceID="detailDataSource" KeyFieldName="OrderID" Width="100%"
OnBeforePerformDataSelect="detailGrid_DataSelect" OnCustomUnboundColumnData="detailGrid_CustomUnboundColumnData">
<Settings ShowFooter="True" />
<SettingsDetail IsDetailGrid="true"/>
<Columns>
<dxwgv:GridViewDataColumn FieldName="OrderID" />
<dxwgv:GridViewDataColumn FieldName="OrderDate" />
<dxwgv:GridViewDataColumn FieldName="ShipName" />
<dxwgv:GridViewDataColumn FieldName="Quantity" Name="Quantity" />
<dxwgv:GridViewDataTextColumn FieldName="UnitPrice" >
<PropertiesTextEdit DisplayFormatString="c" />
</dxwgv:GridViewDataTextColumn>
<dxwgv:GridViewDataTextColumn FieldName="Total" UnboundType="Decimal">
<PropertiesTextEdit DisplayFormatString="c" />
</dxwgv:GridViewDataTextColumn>
</Columns>
<TotalSummary>
<dxwgv:ASPxSummaryItem FieldName="CompanyName" SummaryType="Count"/>
<dxwgv:ASPxSummaryItem FieldName="Total" SummaryType="Sum" DisplayFormat="c"/>
<dxwgv:ASPxSummaryItem FieldName="Quantity" SummaryType="Sum" />
</TotalSummary>
</dxwgv:ASPxGridView>
</DetailRow>
</Templates>
<SettingsDetail ShowDetailRow="true"/>
</dxwgv:ASPxGridView>
<asp:AccessDataSource ID="masterDataSource" runat="server" DataFile="~/App_Data/nwind.mdb"
SelectCommand="SELECT * FROM [Customers]">
</asp:AccessDataSource>
<asp:AccessDataSource ID="detailDataSource" runat="server" DataFile="~/App_Data/nwind.mdb"
SelectCommand="SELECT * FROM [Invoices] Where CustomerID = ?">
<SelectParameters>
<asp:SessionParameter Name="CustomerID" SessionField="CustomerID" Type="String" />
</SelectParameters>
</asp:AccessDataSource>
注意: detailGrid.SettingsDetail.IsDetailGrid = true 表明该grid是作为从表的数据表格用的
// 主表数据绑定
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
grid.DataBind();
grid.DetailRows.ExpandRow(0);
}
}
// 从表数据绑定
protected void gridDetail_DataBinding(object sender, EventArgs e)
{
ASPxGridView grid = sender as ASPxGridView;
if (grid != null)
{
int i = (int) grid.GetMasterRowKeyValue();
grid.DataSource = GetProducts(i);
}
}
// 从表数据选择?
protected void detailGrid_DataSelect(object sender, EventArgs e)
{
Session["CustomerID"] = (sender as ASPxGridView).GetMasterRowKeyValue();
}
// 从表定制列的展示
protected void detailGrid_CustomUnboundColumnData(object sender, ASPxGridViewColumnDataEventArgs e)
{
if(e.Column.FieldName == "Total")
{
decimal price = (decimal)e.GetListSourceFieldValue("UnitPrice");
int quantity = Convert.ToInt32(e.GetListSourceFieldValue("Quantity"));
e.Value = price * quantity;
}
}
// 控制从表的显隐
protected void chkSingleExpanded_CheckedChanged(object sender, EventArgs e)
{
grid.SettingsDetail.AllowOnlyOneMasterRowExpanded = chkSingleExpanded.Checked;
if(grid.SettingsDetail.AllowOnlyOneMasterRowExpanded)
{
grid.DetailRows.CollapseAllRows();
}
}
转载于:https://www.cnblogs.com/goole/archive/2011/04/19/2021169.html
(转载)DevExpress ASPxGridView 使用文档六:模板相关推荐
- (转载)DevExpress ASPxGridView 使用文档一:概述
转载请注明出处:http://surfsky.cnblogs.com/ 前言 说实话,对于这种控件类的使用,我并不喜欢使用或者编写教程之类的文章,一来本来就很简单,二来实在没有这种时间.就我的经验而言 ...
- 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出
我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...
- 默小伟网站开发帮助文档UI模板
93年金牛座IT行业程序猿一只,边工作边积累经验,与大家分享一些IT技术方面的知识,同时博主也愿意与大家分享生活. 闲时制作了一款网站开发帮助文档UI模板 地址链接:http://zhicaipt.c ...
- 利用DOCX文档远程模板注入执行宏代码
利用DOCX文档远程模板注入执行宏代码 简介 本地文件中在没有宏代码的情况下,攻击者可以尝试执行远程文件中宏代码.其中来自APT28的最新样本将此技术展现的淋漓尽致.该样本是docx文件,文件内没有任 ...
- poi-tl实现word文档按模板下载
poi-tl是对poi很好的一个封装,用起来相对来说也更加简单,将git的地址记录一下,方便大家去看 扣扣技术分享交流群:1125844267 源码和文档 https://github.com/Say ...
- 创建模板只有从空白html文档开始创建,word 2019如何创建空白文档和模板文档
学习word2019文字处理的时候,我们首先要知道如何来创建word2019文档,创建word文档和ppt.excel创建文档的方式基本一致,只有创建好了文档我们才可以进行录入和修改,今天我们就来学习 ...
- C#、NPOI生成Word文档(模板)
项目需要集成word导出,做的时候网上文档资源不是很多,也比较杂乱,所以查了查,整理了整理,做个记录,也顺便把NPOI操作Word文档的一些基本操作分享给有需要的朋友. 本篇包括生成Word对word ...
- (转载)中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- PRD(Product Requirement Document,产品需求文档)模板
PRD(Product Requirement Document,产品需求文档), 这对于任何一个产品经理来说都不会陌生的一个文档, 一个PRD是衡量一个产品经理整体思维的标准, 一个PRD可以看出一 ...
最新文章
- 误差向量幅度(EVM)介绍
- VMware vSphere@cloudstack基本功能测试报告
- 排序算法 | 简单选择排序,算法的图解、实现、复杂度和稳定性分析
- WannaCry勒索软件还在继续传播和感染中
- 15个实用的grep示例
- matlab mex路径,使用matlab进行mex编译时的路径问题mexopts
- 浅谈测试rhel7新功能时的感受及遇到的问题
- 什么是二次元?什么是二次元衍生创作?它的魅力何在?
- native关键字(涉及本地方法栈)
- Quectel BC95-CNV 多频段、高性能、低功耗 LTE Cat NB2无线通信模块[移远通信]
- 帝国CMS二次开发在模板里调用本地正规api代码自动生成二维码
- 小技巧:办公邮箱怎么登录foxmail?outlook如何群发单显?
- jQuery插件应用之--- 选项卡插件的使用(10级学员 韩晓爽课堂笔记)
- 白平衡(WB:white balance)数值设置
- 不重装系统解决win10更新错误0x800f0922
- 有什么好用的在线图表制作网站吗?试试这个吧
- CSharp + OpenCvSharp实现医学图像拼接
- 什么是mmc和emmc(mmcblkxxx、sdxx的关系)
- C++ Crow web框架使用;升级cmake ;pthread、boost、asio 报错
- 【将进酒 (李白)】