(转载)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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435084.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arcgis缓冲后在envi中聚类出错

问题&#xff1a; arcgis将某一矢量缓冲后&#xff0c;将非研究区的nodata值改为-9999&#xff0c;后在envi中聚类&#xff0c;发现只分成两类&#xff0c;研究区和非研究区 解决 将-9999改为nodata值这样非研究区就不会参与计算

python博客下载本地文件_解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了...

1.今天网上下载一个博客项目&#xff0c;发现本地访问,js,css加载不了.我想应该是项目上线的安全措施,但是我想调试项目.找到方法如下在settings.py里面编辑添加STATICFILES_DIRS (os.path.join(BASE_DIR, static),)另外把STATIC_ROOT os.path.join(BASE_DIR, static)改为STA…

centos smb配置与win7共享

1. 安装samba yum -y install samba 2. 修改samba配置文件 vi /etc/samba/smb.conf 增加一下内容&#xff1a; [global]        workgroup WORKGROUP        server string file Server        security share [share] …

Ubuntu开机自动启动script(2)

1.安装apt install chkconfig 2.用root帐号登录&#xff0c;vi /etc/rc.d/init.d/mystart&#xff0c;追加如下内容&#xff1a; #! /bin/shecho "hello start up script!" > /home/liaoyong/mystart.txtexit 0这个脚本的作用只是在我的家目录里建立一个文本文件&…

qr分解求线性方程组_梯度下降求解线性方程组算例设计

凸二次优化问题Theory. 设是实对称正定矩阵&#xff0c;&#xff0c;则求解凸二次优化问题等价于求解线性方程组。Proof. 二次型二阶可导&#xff0c;极小值点处梯度为零&#xff0c;现对优化的目标函数求梯度。二次型本质上具有&#xff1a;计算梯度的分量表达式&#xff1a;合…

dem聚类只能成为一类

将各个图层分类后在进行聚类

VMware下桥接设置

操作环境 主机&#xff1a;Win7 X86 SP1 虚拟机&#xff1a;VMware station 8 虚拟机里的系统&#xff1a;Fedora 15 环境上&#xff0c;不管什么系统&#xff0c;什么版本的虚拟机&#xff0c;使用上都是大同小异的&#xff0c;毕竟核心是不变的。 VM虚拟机下linux系统&am…

分享21个丰富多彩的 HTML5 小游戏

作为下一代的网页语言&#xff0c;HTML5 拥有很多让人期待已久的新特性。HTML5 的优势之一在于能够实现跨平台游戏编码移植&#xff0c;现在已经有很多公司在移动设备上使用 HTML5 技术。随着 HTML5 跨平台支持的不断增强和智能手机的迅速普&#xff0c;HTML5 技术有着非常好的…

python白森_氧气恋人

江白森002.发布于2019-07-18 13:37再次见到江白森的时候是三天后&#xff0c;也就是军训的第二天。晚间的时候&#xff0c;以小组为单位举行篝火晚会。修辞坐在树枝堆前&#xff0c;看着堆积的树枝霎时间被点燃&#xff0c;火光一瞬间炸裂&#xff0c;越来越旺。树堆那边的人像…

我算是优秀的程序员吗?

介绍我已经工作5年之久&#xff0c;但我还纠结于是不是优秀的程序员&#xff0c;怎样做优秀的程序员这些问题当中。心态我经常问自己&#xff0c;我算是优秀的程序员吗&#xff1f;有的时候我觉得自己是优秀的程序员&#xff0c;什么时候呢&#xff1f;当我解决问题的时候&…

quick time不可用是什么意思_fpga是什么意思(fpga怎么用)

1、不熟悉 FPGA的内部结构&#xff0c;不了解可编程逻辑器件的基本原理。FPGA为什么是可以编程的?恐怕很多菜鸟不知道&#xff0c;他们也不想知道。因为他们觉得这是无关紧要的。 他们潜意识的认为可编程嘛&#xff0c;肯定就是像写软件一样啦。软件编程的思想根深蒂固&#x…

ArcGIS斜坡单元工具箱

目前全国开始了地质灾害风险调查评价&#xff0c;其中斜坡单元在地质灾害风险调查中有着非常重要的地位&#xff0c;斜坡单元是野外调查的前提&#xff0c;斜坡单元划分的好坏对野外调查也有一定的影响。所以你需要相关技术人员对数据进行处理&#xff0c;并且技术人员在按以下…

与老大的交谈——估算项目时间

介绍上一次我们聊到 估算项目的时间进度! &#xff0c;感谢很多博友的建议。我也向我们老大咨询了一下&#xff0c;他给了我很多宝贵的意见。以下是我跟老大的一些交谈&#xff0c;希望对大家有所帮助。把握三个点以下是老大给我的建议&#xff0c;大家可以考虑一下。这三个点中…

VS2008 只生成DLL不生成lib文件

对于VS2008的Win32工程只生成DLL文件而不生成lib文件 添加Module-Definition File.def文件 注意&#xff1a;需要添加新文件&#xff0c;如果选择 Add Existing Item不能解决问题转载于:https://www.cnblogs.com/SunChina/archive/2011/05/16/2047492.html

八皇后问题python_python八皇后问题的解决方法

本文为大家分享了python八皇后问题的解决方法&#xff0c;供大家参考&#xff0c;具体内容如下题目&#xff1a;给定一个 N*N 正方形棋盘&#xff0c;在上面放置 N个棋子&#xff0c;又叫皇后&#xff0c;使每两个棋子都不在同一条横线上、竖线上、斜线上。一般我们都讨论8皇后…

arcgis中的python字符串比较

字段类型为字符串 jj为int类型 在使用python的ifelse时对字符串进行比较时并赋值&#xff0c;输出结果全部为1 正确代码如下 # -*- coding: utf-8 -*- z0 def a(td):tdtd.encode(utf-8);global zif(td低风险):z1elif(td中风险):z2elif(td高风险):z3elif(td极高风险):z4else…

禅道——需要我们斟酌

一则故事一个苦者对和尚说&#xff1a;“我放不下一些事&#xff0c;放不下一些人。” 和尚说&#xff1a;“没有什么东西是放不下的。”他说&#xff1a;“可我就偏偏放不下。”和尚让他拿着一个茶杯&#xff0c;然后就往里面倒热水&#xff0c;一直倒到水溢出来。苦者被烫到马…

【转】“线程间操作无效: 从不是创建控件的线程访问它”

经典解决“线程间操作无效: 从不是创建控件的线程访问它”在编程中经常会遇到在一个按钮中执行复杂操作&#xff0c;并将复杂操作最后返回的值加入一个ListView或ComboBox中候选。这个时候程序会卡&#xff0c;当程序员将这些卡代码放进线程(Thread)中后发现当对控件操作时出现…

python正则判断_Python 正则表达式

一、基础语法1.1 语法速查1.2 最简单的正则匹配学习正则一般是从 match 和 search 函数开始&#xff0c;推荐教程。matchmatch(pattern, string) 函数会从字符串的头部开始搜索&#xff0c;如果匹配到了 pattern 则将其结果存入 group 中&#xff0c;匹配到了几次就存入几次&am…