转载请注明出处: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 使用文档六:模板相关推荐

  1. (转载)DevExpress ASPxGridView 使用文档一:概述

    转载请注明出处:http://surfsky.cnblogs.com/ 前言 说实话,对于这种控件类的使用,我并不喜欢使用或者编写教程之类的文章,一来本来就很简单,二来实在没有这种时间.就我的经验而言 ...

  2. 利用Aspose.Word控件和Aspose.Cell控件,实现Word文档和Excel文档的模板化导出

    我们知道,一般都导出的Word文档或者Excel文档,基本上分为两类,一类是动态生成全部文档的内容方式,一种是基于固定模板化的内容输出,后者在很多场合用的比较多,这也是企业报表规范化的一个体现. 我的 ...

  3. 默小伟网站开发帮助文档UI模板

    93年金牛座IT行业程序猿一只,边工作边积累经验,与大家分享一些IT技术方面的知识,同时博主也愿意与大家分享生活. 闲时制作了一款网站开发帮助文档UI模板 地址链接:http://zhicaipt.c ...

  4. 利用DOCX文档远程模板注入执行宏代码

    利用DOCX文档远程模板注入执行宏代码 简介 本地文件中在没有宏代码的情况下,攻击者可以尝试执行远程文件中宏代码.其中来自APT28的最新样本将此技术展现的淋漓尽致.该样本是docx文件,文件内没有任 ...

  5. poi-tl实现word文档按模板下载

    poi-tl是对poi很好的一个封装,用起来相对来说也更加简单,将git的地址记录一下,方便大家去看 扣扣技术分享交流群:1125844267 源码和文档 https://github.com/Say ...

  6. 创建模板只有从空白html文档开始创建,word 2019如何创建空白文档和模板文档

    学习word2019文字处理的时候,我们首先要知道如何来创建word2019文档,创建word文档和ppt.excel创建文档的方式基本一致,只有创建好了文档我们才可以进行录入和修改,今天我们就来学习 ...

  7. C#、NPOI生成Word文档(模板)

    项目需要集成word导出,做的时候网上文档资源不是很多,也比较杂乱,所以查了查,整理了整理,做个记录,也顺便把NPOI操作Word文档的一些基本操作分享给有需要的朋友. 本篇包括生成Word对word ...

  8. (转载)中文Appium API 文档

    该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...

  9. PRD(Product Requirement Document,产品需求文档)模板

    PRD(Product Requirement Document,产品需求文档), 这对于任何一个产品经理来说都不会陌生的一个文档, 一个PRD是衡量一个产品经理整体思维的标准, 一个PRD可以看出一 ...

最新文章

  1. 误差向量幅度(EVM)介绍
  2. VMware vSphere@cloudstack基本功能测试报告
  3. 排序算法 | 简单选择排序,算法的图解、实现、复杂度和稳定性分析
  4. WannaCry勒索软件还在继续传播和感染中
  5. 15个实用的grep示例
  6. matlab mex路径,使用matlab进行mex编译时的路径问题mexopts
  7. 浅谈测试rhel7新功能时的感受及遇到的问题
  8. 什么是二次元?什么是二次元衍生创作?它的魅力何在?
  9. native关键字(涉及本地方法栈)
  10. Quectel BC95-CNV 多频段、高性能、低功耗 LTE Cat NB2无线通信模块[移远通信]
  11. 帝国CMS二次开发在模板里调用本地正规api代码自动生成二维码
  12. 小技巧:办公邮箱怎么登录foxmail?outlook如何群发单显?
  13. jQuery插件应用之--- 选项卡插件的使用(10级学员 韩晓爽课堂笔记)
  14. 白平衡(WB:white balance)数值设置
  15. 不重装系统解决win10更新错误0x800f0922
  16. 有什么好用的在线图表制作网站吗?试试这个吧
  17. CSharp + OpenCvSharp实现医学图像拼接
  18. 什么是mmc和emmc(mmcblkxxx、sdxx的关系)
  19. C++ Crow web框架使用;升级cmake ;pthread、boost、asio 报错
  20. 【将进酒 (李白)】

热门文章

  1. Microsoft SQL Server 全角转半角函数
  2. 数据结构与算法——冒泡排序(改进后)
  3. 澳元兑美元震荡整理,后市可否追高
  4. null和undefined相等
  5. 给数据库字段增加前缀
  6. jQuery基础,javascript
  7. AppTheme 属性详解
  8. Cass2008 for CAD2006 安装
  9. 安装vuejs全过程、淘宝镜像
  10. 泰拉瑞亚服务器怎么让玩家注册,上线10年,《泰拉瑞亚》为何变成了一款交友游戏?...