我正在使用“WebForm”Datagrid。
DataGrid绑定到数据集并显示数据。
根据我的发现使DataGrid可编辑所有我需要做的是 添加一个Editcommandcolumn。
我做到了,所以我有:
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="Update" CancelText="Cancel" EditText="Edit"></asp:EditCommandColumn>
现在,数据网格显示了第一个库中带有超链接“EDIT”的新列。
当我点击任意一行的编辑时,问题就不会发生。
我错过了什么?
答案 0 :(得分: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
}
如果您有任何问题,请告诉我......