【问题标题】:how to get the deleted rows id in gridview?如何在gridview中获取已删除的行ID?
【发布时间】:2014-02-26 22:03:20
【问题描述】:

当我在删除事件中删除一行时,我想从GridView 获得品牌标识。

我该怎么做?

<asp:GridView ID="GridView1" OnRowDeleted="GridView1_RowDeleted" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="Id" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:CommandField ShowEditButton="True" ShowSelectButton="True" ShowDeleteButton="True" />
        <asp:BoundField DataField="brandname" HeaderText="brandname" SortExpression="brandname" />
        <asp:BoundField DataField="info" HeaderText="info" SortExpression="info" />
        <asp:ButtonField DataTextField="brandname" HeaderText="brandname" ButtonType="Button"/>
        <asp:BoundField DataField="Id" HeaderText="brandid" ReadOnly="True" SortExpression="Id" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:DefaultConnection %>" DeleteCommand="DELETE FROM [brand_tbl] WHERE [Id] = @original_Id AND (([brandname] = @original_brandname) OR ([brandname] IS NULL AND @original_brandname IS NULL)) AND (([info] = @original_info) OR ([info] IS NULL AND @original_info IS NULL))" InsertCommand="INSERT INTO [brand_tbl] ([brandname], [info]) VALUES (@brandname, @info)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [brand_tbl]" UpdateCommand="UPDATE [brand_tbl] SET [brandname] = @brandname, [info] = @info WHERE [Id] = @original_Id AND (([brandname] = @original_brandname) OR ([brandname] IS NULL AND @original_brandname IS NULL)) AND (([info] = @original_info) OR ([info] IS NULL AND @original_info IS NULL))">
    <DeleteParameters>
        <asp:Parameter Name="original_Id" Type="Int32" />
        <asp:Parameter Name="original_brandname" Type="String" />
        <asp:Parameter Name="original_info" Type="String" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="brandname" Type="String" />
        <asp:Parameter Name="info" Type="String" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="brandname" Type="String" />
        <asp:Parameter Name="info" Type="String" />
        <asp:Parameter Name="original_Id" Type="Int32" />
        <asp:Parameter Name="original_brandname" Type="String" />
        <asp:Parameter Name="original_info" Type="String" />
    </UpdateParameters>
</asp:SqlDataSource>

【问题讨论】:

标签: asp.net gridview


【解决方案1】:

在您的 RowDeleted 事件中,您只需获取 e.Keys["Id"].ToString() 即可获得品牌 ID 的值。这是因为您已经将“Id”定义为 GridView 的 datakeynames 值。

protected void GridView1_RowDeleted (Object sender, GridViewDeletedEventArgs e)
{
    string brandId = e.Keys["Id"].ToString();
}

【讨论】:

  • 对象引用未设置为对象的实例。而我使用了相同的方法
  • 我的错,@BorshonAeolusSaydur。它应该是 e.Keys["Id"].ToString()。我已经更新了答案,你可以再试一次吗? “Id”进入 Keys 集合,而不是 Values 集合,因为它是 DataKeyNames 属性的一部分。
  • @BorshonAeolusSaydur 太棒了!我很高兴能帮上忙 =)
【解决方案2】:

请检查您的代码

e. rowindex 显示到被删除事件中行的id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 1970-01-01
    相关资源
    最近更新 更多