我在这里搜索了答案,但我找不到答案。
我有像这样的网格视图:
<asp:GridView ID="gdvSubEventos" AutoGenerateColumns="False" runat="server">
<Columns>
<asp:BoundField HeaderText="Descrição" DataField="Descricao">
</asp:BoundField>
<asp:BoundField HeaderText="Data" DataField="data" DataFormatString="{0:dd/MM/yyyy}">
</asp:BoundField>
<asp:CommandField HeaderText="Opção" EditText="Editar" ShowEditButton="true">
</asp:CommandField>
</Columns>
</asp:GridView>
如果用户点击编辑,则会打开另一个表单(在网格的上方,在同一页面中)进行编辑。
问题是:当用户第一次点击编辑按钮时,一切正常。但是,如果他再次点击编辑按钮,在第一次编辑的回发后,gridview中的行将变为可编辑。
如何始终避免在网格视图上使用编辑模式?
答案 0 :(得分:2)
如果使用命令字段中提供的按钮,您将触发gridview的编辑功能,gridview期望您将使用嵌入式编辑。在没有深入细节的情况下,您应该在RowEditEvent的底部设置gdvSubEventos.EditIndex = -1
,这应该使gridview退出编辑模式。
要避免gridview完全进入editmode - 请在命令字段中禁用edit 添加一个编辑按钮以显示您自己的表单:
<asp:ButtonField>
添加到列列表在GridView RowDataBound事件中
当您选择此按钮时,它将触发按钮的CommandEvent,而不是GridView,因此您需要行索引引用以从Gridview中获取所需的数据以填充您的字段。