asp:GridView控件的EditTemplate属性

时间:2009-07-28 11:48:01

标签: asp.net gridview

我有一个asp:GridView,在那里我有两列,在一列中我想显示标签 但当我点击一个sdit按钮时,我想在该特定列中显示一个下拉列表, 我创建了如下网格视图:

<bw:GridView ID="grdProducts" AllowPaging="True" PageSize="5" AllowSorting="True" 
  CssClass="DGTable" runat="server" AutoGenerateColumns="False" DataKeyNames="LinkedProductCode"
  RowSelectingEnabled="True" RowStyle-CssClass="DGItem" SelectedRowStyle-CssClass="DGSelectedItem"
  FooterStyle-CssClass="DGFooterTR"  EditRowStyle-CssClass="DGEditItemValidator" >
  <Columns>
    <asp:BoundField DataField="LinkedProductCode" HeaderText="Product Code" ReadOnly="true" meta:resourcekey="BoundFieldResource4" />                                        
    <asp:TemplateField  HeaderText="Product Type" ItemStyle-VerticalAlign="Top">
     <ItemTemplate>
     <asp:Label ID="lbl1" runat="server" Text='<%# Bind("LinkedProductType")%>' /> 
    </ItemTemplate>
     <EditItemTemplate >
       <asp:DropDownList ID="linkedproductList" runat="server" DataSourceID="list">
       </asp:DropDownList>
     </EditItemTemplate>
    </asp:TemplateField>                                        
  </Columns>
  <SelectedRowStyle CssClass="DGSelectedItem" />
  <PagerStyle CssClass="DGPagerTR" />
  <HeaderStyle CssClass="DGHeaderTR" />
</bw:GridView>

我该怎么做呢?我应该在编辑按钮的点击事件中写什么? 请帮忙..

2 个答案:

答案 0 :(得分:3)

这取决于您如何设置“编辑”按钮。如果你有

<asp:Button ID="btnEdit" CommandName="Edit" runat="server" Text="Edit" />

在GridView中的<ItemTemplate>内,当单击“编辑”按钮时,Gridview将自动进入“编辑”模式。 CommandName Edit是一个特殊的CommandName,用于将GridView置于编辑模式。

如果您想在编辑模式下实现某些特定行为,那么可以通过设置OnRowEditing事件处理程序并在此处实现您的逻辑来实现。这看起来像这样

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
    // Set editing on the row that raised the event
    GridView1.EditIndex = e.NewEditIndex;

    /* Insert specific editing logic here */

    GridView1.DataBind();
}

答案 1 :(得分:3)

您只需创建一个ButtonFieldCommandname设置为“编辑”(或者,将GridView的AutoGenerateEditButton属性设置为True)。

GridView支持指定一组特定CommandNames的字段的预配置命令(例如“编辑”,“删除”,“取消”)。

单击此按钮时,GridView将进入“编辑”模式,并自动显示EditItemTemplate。