0

削除コマンドが削除されません。削除ボタンをクリックすると、Get イベントと Post イベントが発生しますが、データベースやページに変更が反映されません。デフォルト値にデフォルト値を割り当てると、デフォルトasp:Parameter値が毎回渡され、それがデータベースに存在する場合、削除コマンドは適切に評価され、レコードを削除します。

<asp:SqlDataSource
    ID="AcknowledgementDataSource" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ProductionDatabaseConnectionString1 %>" 
    SelectCommand="select tblHRM_Acknowledgements.AcknowledgementID, tblHRM_Acknowledgements.Acknowledger, lstduperoncontacts.Contact as Acknowledgee, tblHRM_Acknowledgements.Comment from tblHRM_Acknowledgements left join lstduperoncontacts on tblHRM_Acknowledgements.acknowledgee = lstDuperonContacts.contactid where Acknowledger in (select lstDuperonContacts.ContactID from lstDuperonContacts where lstDuperonContacts.email = @lblemail)"
    InsertCommand="insert into tblHRM_Acknowledgements(Acknowledger, Acknowledgee, Comment) Select contactID, @ddlAck, @txtComment from lstDuperonContacts where email = @lblemail"         
    DeleteCommand="delete from tblHRM_Acknowledgements where tblHRM_Acknowledgements.AcknowledgementID = @AcknowledgementID">
        <SelectParameters>
            <asp:ControlParameter ControlID="lblemail" Name="lblemail" />
        </SelectParameters>
        <InsertParameters>
            <asp:ControlParameter ControlID="lblemail" Name="lblemail" />
            <asp:ControlParameter ControlId="ddlAcknowledgee" PropertyName="SelectedValue" Name="ddlAck" />
            <asp:ControlParameter ControlID="txtComment" Name="txtComment" />
        </InsertParameters>
        <DeleteParameters>
            <asp:Parameter Name="AcknowledgementID" />
        </DeleteParameters>

    </asp:SqlDataSource>

これはタイプミスか何かのような明らかな問題だと思いますが、見つけられませんが、はっきりとは言えません。何か間違っていると思いますか?

データを表示/削除するリストビュー:

    <asp:ListView ID="ListView1" runat="server" DataSourceID="AcknowledgementDataSource">
        <AlternatingItemTemplate>
            <li style="">
                <asp:HiddenField ID="AcknowledgementField" Value='<%# Eval("AcknowledgementID") %>' runat="server" />
                Acknowledgee:
                <asp:Label ID="AcknowledgeeLabel" runat="server" 
                    Text='<%# Eval("Acknowledgee") %>' />
                <br />
                Comment:
                <asp:Label ID="CommentLabel" runat="server" Text='<%# Eval("Comment") %>' />
                <br />
                <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" 
                    Text="Delete" />
            </li>
        </AlternatingItemTemplate>
        <EmptyDataTemplate>
            No data was returned.
        </EmptyDataTemplate>
        <ItemSeparatorTemplate>
            <br />
        </ItemSeparatorTemplate>
        <ItemTemplate>
            <li style="">
                <asp:HiddenField ID="AcknowledgementField" Value='<%# Eval("AcknowledgementID") %>' runat="server" />
                Acknowledgee:
                <asp:Label ID="AcknowledgeeLabel" runat="server" 
                    Text='<%# Eval("Acknowledgee") %>' />
                <br />
                Comment:
                <asp:Label ID="CommentLabel" runat="server" Text='<%# Eval("Comment") %>' />
                <br />
                <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" 
                    Text="Delete" />
            </li>
        </ItemTemplate>
        <LayoutTemplate>
            <ul ID="itemPlaceholderContainer" runat="server" style="">
                <li runat="server" id="itemPlaceholder" />
            </ul>
            <div style="">
            </div>
        </LayoutTemplate>
    </asp:ListView>
4

1 に答える 1

3

このコードを試してください

<asp:ListView ID="ListView1" DataKeyNames="AcknowledgementID".......

DataKeyNamesリストビューのプロパティを使用します。

ListView.DataKeyNames プロパティ

于 2012-10-17T19:40:53.900 に答える