【玩转GridView】之TemplateField模板

来源:互联网 发布:python 微信开发文档 编辑:程序博客网 时间:2024/05/16 10:23

背景介绍:

    近期负责开发的子系统中,很大一部分的工作都是和GridView打交道,各种编辑、删除gridview的操作,所以小编准备系列总结,来进一步学习。

    在介绍详情之前,让小编带大家了解几个重要角色。

1.TemplateField

   介绍:在gridview 中单个字段都会采用BoundField去直接绑定字段。但是如果想要添加控件,就可采用TemplateField模板。

   如下代码可看出,模板和BoundField的不同之处了。

 TemplateField类的部分常用属性:

              

2.EditItemTemplate

   介绍:如果TemplateField对象想自定义编辑模式下的显示内容时,就可使用EditItemTemplate编辑模板。编辑模板可以输入控件,如文本框,下拉框等,方便用户修改数据。

   如下,就是EditItemTemplate和TemplateField的关系。TextBox的地方可以添加其他控件,如下拉框等。

 <asp:TemplateField >        <EditItemTemplate>              <asp:TextBox ID="tbProCode" runat="server" Text='<%# Bind("S_PROJ_CODE") %>' Enabled="false" Width="100px"></asp:TextBox>        </EditItemTemplate>                                                    </asp:TemplateField>

3.ItemTemplate

 如上篇博客所述,ItemTemplate中还可以添加隐藏域,去绑定需要值但不要显示的数据.

   <asp:TemplateField HeaderText="项目编号" SortExpression="t.S_PROJ_CODE">        <ItemTemplate>           <asp:Label ID="LbelProCode" runat="server" Text='<%# Bind("S_PROJ_CODE") %>'></asp:Label>        </ItemTemplate>   </asp:TemplateField>

4,效果展示


下图显示的是可编辑的效果图:

5.实例代码

<asp:AdvGridView ID="gdvProjectlist" runat="server" AutoGenerateColumns="False" Width="100%" >            <HeaderStyle CssClass="QueryTop" />            <RowStyle CssClass="QueryList" />            <Columns>                <asp:TemplateField HeaderText="完成工作量" SortExpression="t.NActualWorkload">                     <EditItemTemplate>                        <asp:TextBox ID="tbComplete" runat="server" Text='<%# Bind("N_ACTUAL_WORKLOAD") %>'Width="100px"></asp:TextBox>                     </EditItemTemplate>                     <ItemTemplate>                          <asp:Label ID="lbelComplete" runat="server" Text='<%# Bind("N_ACTUAL_WORKLOAD") %>'></asp:Label>                     </ItemTemplate>                </asp:TemplateField>                <asp:TemplateField HeaderText="操作员" SortExpression="t.SUserName">                      <EditItemTemplate>                          <asp:TextBox ID="tbOper" runat="server" Text='<%# Bind("S_USER_NAME") %>' Width="100px" Enabled="false"></asp:TextBox>                      </EditItemTemplate>                      <ItemTemplate>                           <asp:HiddenField ID="tbWorkID" runat="server" Value='<%#Eval("S_WORDLOAD_ID") %>'> </asp:HiddenField>                           <asp:Label ID="lbelOper" runat="server" Text='<%# Bind("S_USER_NAME") %>'></asp:Label>                       </ItemTemplate>                 </asp:TemplateField>                 <asp:TemplateField HeaderText="录入日期" SortExpression="t.DCreateDate">                      <EditItemTemplate>                          <asp:TextBox ID="tbPerdatte" Width="100px" runat="server" Text='<%# Bind("D_CREATE_DATE" , "{0:yyyy-MM-dd}") %>' Enabled="false"></asp:TextBox>                      </EditItemTemplate>                      <ItemTemplate>                           <asp:Label ID="lbelPerdate" runat="server" Text='<%# Bind("D_CREATE_DATE", "{0:yyyy-MM-dd}") %>'></asp:Label>                      </ItemTemplate>                 </asp:TemplateField>                 <asp:TemplateField HeaderText="备注" SortExpression="t.SComments">                       <EditItemTemplate>                              <asp:TextBox ID="tbComment" Width="150px" runat="server" Text='<%# Bind("S_COMMENTS") %>'></asp:TextBox>                        </EditItemTemplate>                         <ItemTemplate>                               <asp:Label ID="lbelComment" runat="server" Text='<%# Bind("S_COMMENTS") %>'></asp:Label>                         </ItemTemplate>                  </asp:TemplateField>                  <asp:CommandField ShowEditButton="True" UpdateText="保存">                          <HeaderStyle Width="60px" />                  </asp:CommandField>                  <asp:TemplateField>                       <ItemTemplate>                             <asp:LinkButton ID="delete" runat="server" CommandName="Delete">删除</asp:LinkButton>                       </ItemTemplate>                        <HeaderStyle Width="60px" />                   </asp:TemplateField>             </Columns>                 <AlternatingRowStyle BackColor="WhiteSmoke" />      </asp:AdvGridView>

小结:

  这篇博客,分享了gridview中直接操作表格的一系列操作.这样操作比弹出框编辑数据的效果更直观.利用gridview和TemplateField一些方法属性的结合去实现这种效果.

  下一篇博客,小编将会总结Gridview一些方法和属性,来进一步了解GridView.



0 0