我需要允许用户“浏览”在gridview上进行编辑。行数据中将有一个可编辑列。用户应该能够点击标签并转到下一行来编辑所述列。
我还没有找到任何简单的方法来完成这项任务。我找到了一种以编程方式将gridview置于编辑模式的方法,但在测试下面的代码时,它一次只能运行一行。
reviewTransferGV.EditIndex = 0;
reviewTransferGV.Rows[0].RowState = DataControlRowState.Edit;
reviewTransferGV.EditIndex = 1;
reviewTransferGV.Rows[1].RowState = DataControlRowState.Edit;
reviewTransferGV.DataBind();
答案 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方法。