0

Usercontrol に 1 つの Listview と、ListView にバインドされた 1 つの objectdatasource があります。現在、objectdatasource の Deletemethod でビジネスオブジェクトを引数として取りましたが、実行時にビジネスオブジェクトのプロパティで値を取得していません...

また、ItemTemplate で「eval」の代わりに「Bind」を使用しようとしました。しかし、objectdatasource の Deletecommand で提供される私の DeleteMethod で実行時に値を取得できません...誰かが私が何か不足している天気を知るのを助けることができますか?

私のリストビューのItemTemplate

 <ItemTemplate>
            <asp:HiddenField ID="hidUserAchievementInfoId" runat="server" Value='<%# Bind("UserAchievementInfoId") %>' />
            <asp:HiddenField ID="hidUserIdField" runat="server" Value='<%# Bind("UserId") %>' />
            <tr>
                <td class="style1">
                    <asp:Label ID="AwardLabel" runat="server" Text="Award "></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lblAward" runat="server" Text='<%# Bind("Awards") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:Label ID="FieldofAwardLabel" runat="server" Text="Field of Award "></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lblFieldofAward" runat="server" Text='<%# Bind("FieldofAward") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:Label ID="TournamentLabel" runat="server" Text="Tournament "></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lblTournament" runat="server" Text='<%# Bind("Tournament") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:Label ID="AwardYearLabel" runat="server" Text="Award Year "></asp:Label>
                </td>
                <td>
                    <asp:Label ID="AwardYear" runat="server" Text='<%# Bind("AwardYear") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:Label ID="AwardDescriptionLabel" runat="server" Text="Description "></asp:Label>
                </td>
                <td>
                    <asp:Label ID="lblAwardDescription" runat="server" Text='<%# Bind("AwardDescription") %>'></asp:Label>
                </td>
            </tr>
            <tr>
                <td class="style1">
                    <asp:LinkButton ID="EditButton" runat="server" CommandName="Edit" Text="Edit"></asp:LinkButton>
                </td>
                <td>
                    <asp:LinkButton ID="DeleteButton" runat="server" CommandName="Delete" Text="Delete"></asp:LinkButton>
                </td>
            </tr>
        </ItemTemplate>

objectdata ソースの Deletecommand で使用される Delete メソッド

    public void DeleteUserAchievementInfo(UserAchivementInfoBO BOInstance)
    {
        try
        {
    Int64 UserAchievementInfoId=BOInstance.UserAchievementInfoId
            objUserBasicInfoServiceClient.DeleteUserAchievementInfo(UserAchievementInfoId);
        }
        catch (Exception ex)
        {
            HandleException.LogError(ex);
        }
    }
4

1 に答える 1

0

ビジネス オブジェクトのキー フィールド (id、key など) をリストビューの datakeynames プロパティに追加してみてください。こうすることで、少なくとも削除イベントでキーの値を取得できます。

于 2010-03-21T18:04:37.840 に答える