1

GridViewの行のIDをdeleteコマンドにリンクして行を削除するにはどうすればよいですか?

これが私のコードです:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
        AllowSorting="True" DataSourceID="SqlDataSource1" 
        AutoGenerateColumns="False">
    <Columns>
        <asp:CommandField ShowDeleteButton="True" />
        <asp:BoundField DataField="SDate" HeaderText="SDate" SortExpression="SDate" />
        <asp:BoundField DataField="STime" HeaderText="STime" SortExpression="STime" />
        <asp:BoundField DataField="SPrice" HeaderText="SPrice" 
                SortExpression="SPrice" />
        <asp:BoundField DataField="SDuration" HeaderText="SDuration" 
                SortExpression="SDuration" />
        <asp:BoundField DataField="SNoPlaces" HeaderText="SNoPlaces" 
                SortExpression="SNoPlaces" />
        <asp:BoundField DataField="ScheduleId" HeaderText="ScheduleId" 
                InsertVisible="False" ReadOnly="True" SortExpression="ScheduleId" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ChinatowndbConnString %>" 
        DeleteCommand="DELETE FROM Schedule WHERE (ScheduleId = @ScheduleId)" 
        SelectCommand="SELECT SDate, STime, SPrice, SDuration, SNoPlaces, ScheduleId FROM Schedule">
    <DeleteParameters>
        <asp:Parameter Name="ScheduleId" />
    </DeleteParameters>
</asp:SqlDataSource>

VisualStudio2010を使用しています。

4

2 に答える 2

3

GridViewコントロールでDataKeyNamesプロパティを設定するのを忘れました。

GridViewを次のように変更します。

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AllowSorting="True" DataSourceID="SqlDataSource1" 
    AutoGenerateColumns="False"
    DataKeyNames="ScheduleId" >

別の例:SqlDataSource.DeleteCommandプロパティ

于 2012-08-31T13:28:53.723 に答える
0

idGridviewプロパティでリンクします

DataKeyNames="your_id"

ids以下のように複数を定義することもできます。

DataKeyNames="your_id1, your_id2"

そして、あなたは以下のように値にアクセスすることができます:

protected void GridView1_Deleting(object sender, ObjectDataSourceMethodEventArgs)  
{
    //e.Command.Parameters["your_id1"].Value;
}
于 2012-08-31T13:30:14.557 に答える