1

我正在使用“WebForm”数据网格。

DataGrid 绑定到数据集并显示数据。

根据我的发现,使 DataGrid 可编辑我需要做的就是添加一个 Editcommand 列。

我这样做了,所以我有:

<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>

现在数据网格在第一列中显示一个带有超链接“EDIT”的新列。

当我单击任何行上的编辑时,问题是没有任何反应。

我错过了什么?

4

1 回答 1

1

好的,我只是举了一个例子,它正在工作。

首先我有我的 DataGrid 定义:

<asp:DataGrid ID="Grid" runat="server" DataKeyField="DatasetField1" AutoGenerateColumns="False" GridLines="None" OnCancelCommand="Grid_CancelCommand" OnEditCommand="Grid_EditCommand" OnUpdateCommand="Grid_UpdateCommand">
<Columns>
     <asp:BoundColumn HeaderText="Column1" DataField="DatasetField1"></asp:BoundColumn>
     <asp:BoundColumn HeaderText="Column2" DataField="DatasetField2"></asp:BoundColumn>
     <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" HeaderText="Edit"></asp:EditCommandColumn>
 </Columns>

其次,我必须绑定我的数据网格:

public BindData()
{
    ....
    Grid.DataSource = [MyDataSet With DatasetFiel1 and DatasetField2 fields];
    Grid.DataBind();
}

第三,我处理编辑事件(查看上面的 DataGrid 标记):

当您单击网格内的编辑链接按钮时的事件:

protected void Grid_EditCommand(object source, DataGridCommandEventArgs e)
{
    Grid.EditItemIndex = e.Item.ItemIndex;
    BindData();
}

编辑后单击取消链接按钮时的事件。只需取消更改:

protected void Grid_CancelCommand(object source, DataGridCommandEventArgs e)
{
    Grid.EditItemIndex = -1;
    BindData();
}

最后一个事件,当您确认您的编辑值时:

protected void Grid_UpdateCommand(object source, DataGridCommandEventArgs e)
{
    // Here you save your changes to the database
}

如果您有任何问题,请告诉我...

于 2013-06-26T19:39:40.627 回答