【玩转GridView】之TemplateField模板

背景介绍:

    近期负责开发的子系统中,很大一部分的工作都是和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
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值