我有一个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>
我该怎么做呢?我应该在编辑按钮的点击事件中写什么? 请帮忙..
答案 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)
您只需创建一个ButtonField
,Commandname
设置为“编辑”(或者,将GridView的AutoGenerateEditButton
属性设置为True)。
GridView支持指定一组特定CommandNames的字段的预配置命令(例如“编辑”,“删除”,“取消”)。
单击此按钮时,GridView将进入“编辑”模式,并自动显示EditItemTemplate。