将多行gridview放入编辑模式

时间:2010-11-30 14:35:36

标签: c# asp.net

我需要允许用户“浏览”在gridview上进行编辑。行数据中将有一个可编辑列。用户应该能够点击标签并转到下一行来编辑所述列。

我还没有找到任何简单的方法来完成这项任务。我找到了一种以编程方式将gridview置于编辑模式的方法,但在测试下面的代码时,它一次只能运行一行。

        reviewTransferGV.EditIndex = 0;
        reviewTransferGV.Rows[0].RowState = DataControlRowState.Edit;
        reviewTransferGV.EditIndex = 1;
        reviewTransferGV.Rows[1].RowState = DataControlRowState.Edit;
        reviewTransferGV.DataBind();

3 个答案:

答案 0 :(得分:10)

我通过在页面中创建一个属性来解决方法:

protected bool IsEditMode
{
  get { return this.EditMode; }
  set { this.EditMode = value; }
}

然后在GridView中,我在项目模板中有视图和编辑模式的控件。根据属性值设置可见性:

<asp:TemplateField SortExpression="Status" HeaderText="Status">
<ItemTemplate>
    <asp:Label Id="lblStatus" Text='<%# Eval("Status") %>' Visible='<%# !IsEditMode %>' runat="server" />
    <asp:TextBox ID="txtStatus" Text='<%# Eval("Status") %>' Visible='<%# IsEditMode %>' runat="server" />
</ItemTemplate>

这适用于编辑整个gridview。您可能需要进行一些修改才能使其适用于各行。

答案 1 :(得分:0)

我认为GridView不可能同时在编辑模式下拥有多行。如果要编辑多行,则需要使用自己的机制来执行此操作。

答案 2 :(得分:0)

另一点是如何将结果保存到DataBase。 在常规使用中,我们简单地调用执行工作的更新命令,在ItemTemplate中现在有更新按钮。 所以我在GridView外面添加一个按钮,在处理程序中我为每一行手动调用UpdateRow方法。

相关问题