我有 4 个使用 RadGrid 创建的表。它们中的每一个都包含一个我有标题和 ID 的项目列表。我想要一个带有“删除”链接的列,它将触发一个事件处理程序,我将在其中编写代码以从数据库中删除这个 id。
这些表中的每一个在数据库中都有一个单独的表,所以我需要知道哪个表触发了处理程序以及它对应的 id 是什么。
另一个小问题是,我应该包含什么以便 Visual Studio 将 GridCommandEventArgs 识别为一种类型?
你的问题有点混乱。您可以使用 DeleteCommand 获取行的 id 并将其删除。
<telerik:RadGrid ID="RadGrid1" runat="server"
OnDeleteCommand="RadGrid1_DeleteCommand"
OnNeedDataSource="RadGrid1_NeedDataSource">
<MasterTableView DataKeyNames="Id" CommandItemDisplay="Top">
<Columns>
<telerik:GridButtonColumn ButtonType="ImageButton"
ConfirmText="Are you sure you want to delete?"
CommandName="Delete" ImageUrl="~/Images/Delete.png"
Text="Click to delete" UniqueName="Delete">
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
protected void RadGrid1_DeleteCommand(object source, GridCommandEventArgs e)
{
int id = Convert.ToInt32(e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["id"]);
// Do delete based on the given id
}