gpt4 book ai didi

asp.net - 对 GridView OnRowDeleting 事件感到困惑?

转载 作者:行者123 更新时间:2023-12-02 17:03:39 25 4
gpt4 key购买 nike

今天,当我根据 GridView 中的 id 删除一条记录时,我遇到了一个问题,为此我使用了 OnRowCommand 事件。这是我的 gridview 代码:

<asp:GridView ID="gridShow" runat="server" AutoGenerateColumns="False" PageSize="5"
AllowPaging="true" ShowHeader="false" OnRowCommand="s_index" OnRowDeleting="gridShow_RowDeleting">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="txtID" runat="server" Text='<%#Eval("ID") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%">
<ItemTemplate>
<asp:TextBox ID="txtDescription" runat="server" Text='<%#Eval("RollNumber") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="txtFname" runat="server" Text='<%#Eval("FirstName") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%">
<ItemTemplate>
<asp:TextBox ID="txtLname" runat="server" Text='<%#Eval("LastName") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%">
<ItemTemplate>

<asp:TextBox ID="txtEmail" runat="server" Text='<%#Eval("Email") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-Width="15%">
<ItemTemplate>
<asp:Label ID="lblStatus" runat="server"></asp:Label>
<asp:HiddenField ID="hdnStatus" runat="server" Value='<%#Eval("UserName") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lb" runat="server" Text="Delete" CommandName="delete" CommandArgument='<%#Eval("ID") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

这是我的 C# 代码:

 protected void s_index(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "delete")
{
oSRegisterBLL.BLLdelete(Convert.ToInt32(e.CommandArgument));
gview();
}
}
protected void gridShow_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
}

我通过在 GridView 上添加 OnRowDeleting 事件并在后面的页面上添加该事件的定义成功完成了此任务,但是当我第一次删除此事件时,我发现并发出“ASP.datashow_aspx' 不包含 的定义” 'gridShow_RowDeleting' 并且找不到接受类型为 'ASP.datashow_aspx' 的第一个参数的扩展方法 'gridShow_RowDeleting'(您是否缺少 using 指令或程序集引用?)”

我很困惑为什么要使用 onrowcommand 事件在 GridView 上添加 OnRowDeleting 事件?为什么我很困惑,因为如果我没有对这个事件做任何工作那么为什么要使用这个事件?有没有办法只处理 onrowcommand 事件?或者添加 onrowdeleting 事件对于从 gridview 中删除记录至关重要?我想澄清一下我的想法吗?

最佳答案

您的 GridView 的 aspx 标记已在此处声明事件处理程序:

OnRowDeleting="gridShow_RowDeleting"

因此,当您尝试将其从 coedebehind 中删除时,您将得到该异常。因此,只需删除事件处理程序,您就可以将其从代码隐藏中删除。

编辑

有一个删除按钮,或者甚至是 GridView 中的一个常规按钮,其 CommandName 为删除(这里就是这种情况),将自动尝试触发 OnRowDeleting

因此,即使您不使用事件处理程序,也必须添加它,或者必须将 CommandName 重命名为例如“DeleteUser”,否则您会收到诸如“The GridView 'gridShow'引发的事件 RowDeleting 未处理”之类的异常。

关于asp.net - 对 GridView OnRowDeleting 事件感到困惑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com