如何避免gridview上的编辑模式?

时间:2015-01-05 17:34:16

标签: asp.net gridview

我在这里搜索了答案,但我找不到答案。

我有像这样的网格视图:

<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中的行将变为可编辑。

如何始终避免在网格视图上使用编辑模式?

1 个答案:

答案 0 :(得分:2)

如果使用命令字段中提供的按钮,您将触发gridview的编辑功能,gridview期望您将使用嵌入式编辑。在没有深入细节的情况下,您应该在RowEditEvent的底部设置gdvSubEventos.EditIndex = -1,这应该使gridview退出编辑模式。

要避免gridview完全进入editmode - 请在命令字段中禁用edit 添加一个编辑按钮以显示您自己的表单:

  1. <asp:ButtonField>添加到列列表
  2. 将其转换为模板字段。
  3. 在GridView RowDataBound事件中

    1. 找到按钮控件
    2. 将它的CommandName分配给&#34; MyEdit&#34;
    3. 为它分配CommandArgument行索引,以便您知道选择了哪一行。
    4. 当您选择此按钮时,它将触发按钮的CommandEvent,而不是GridView,因此您需要行索引引用以从Gridview中获取所需的数据以填充您的字段。