0

これは簡単な答えのようですが、私はこれをどこでも検索しましたが、私がやろうとしていることを見つけることができず、私はこれに慣れていないので、何かが足りないかもしれません...誰かが助けてくれることを願っています。

これの目的は、私が修理のために送っているスキャナー(dl)のパッキングリストを表示することであり、各修理の問題にはメモ(gv)があります。dlを正しく表示させることはできますが、gvをまったく表示させることができません。「issuekey」をハードコーディングした場合でも。オブジェクトがオブジェクトに設定されていないというエラーが発生します。明らかに、ハードコーディングしておくことはできないので、(DataKeyを介して)issuekeyをdlからプルしてgvに渡そうとすると、「インデックスが範囲外でした」というメッセージが表示されます。(私がステップスルーすると、-1が表示されます)。

これが私が使っているコードです...ありがとう

Sub LoadShippingList()
    dlShippingList.DataSource = WarehouseManager.GetScannerIssuesByScannerStatus(WarehouseManager.ScannerStatus.PendingShipForRepair)
    dlShippingList.DataBind()
End Sub

Protected Sub dlShippingList_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlShippingList.ItemDataBound
    Dim dList As DataList = CType(sender, DataList)
    Dim intScannerIssueKey As Integer = dList.DataKeys(e.Item.ItemIndex)

    Dim gv As GridView
    gv = CType(e.Item.FindControl("gvShippingListIssueNotes"), GridView)
    gv.DataSource() = WarehouseManager.GetScannerIssueNotes(intScannerIssueKey)
    gv.DataBind()

End Sub


<asp:Panel ID="pnlShippingList" runat="server">
            <asp:Label ID="lblShippingListCaption" runat="server" Text="Shipping List" SkinID="PageTitle"></asp:Label>
            <br />
            <asp:DataList ID="dlShippingList" runat="server" GridLines="Both" DataKeys="ScannerIssueKey" DataKeyField="ScannerIssueKey">
                <HeaderTemplate>
                    <table>
                        <tr>
                            <td>
                                <asp:Label ID="lblShipmentNumberCaption" runat="server" Text="Shipment:" SkinID="FieldLabel"></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="lblShipmentNumber" runat="server" SkinID="FeedbackMessageSmallDark"></asp:Label>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                <asp:Label ID="lblShipmentDateCaption" runat="server" Text="Date:" SkinID="FieldLabel"></asp:Label>
                            </td>
                            <td>
                                <asp:Label ID="ShipmentDate" runat="server" SkinID="FeedbackMessageSmallDark"></asp:Label>
                            </td>
                        </tr>
                    </table>
                </HeaderTemplate>
                <ItemTemplate>
                    Issue #:<asp:Label ID="lblScannerIssueKey" runat="server" Text='<%# Eval("ScannerIssueKey") %>'></asp:Label>
                    Scanner #:
                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("ScannerKey") %>'></asp:Label>
                    Subject:<asp:Label ID="Label2" runat="server" Text='<%# Eval("IssueDescription") %>'></asp:Label>
                    <br />
                    Notes:<br />
                    <asp:GridView ID="gvShippingListIssueNotes" HorizontalAlign="Left" runat="server"
                        Font-Size="Medium" EmptyDataText="No Notes" AutoGenerateColumns="false" SkinID="SimpleGrid">
                        <RowStyle VerticalAlign="Top" HorizontalAlign="Center" />
                        <Columns>
                            <asp:BoundField HeaderText="Notes" DataField="Notes" />
                            <asp:BoundField HeaderText="User" DataField="UserEntered" />
                            <asp:BoundField HeaderText="Date" DataField="DateAndTime" />
                        </Columns>
                    </asp:GridView>
                    <br />
                </ItemTemplate>
                <FooterTemplate>
                    Weissmans's 6750 Manchester Avenue St. Louis MO 63139</FooterTemplate>
            </asp:DataList>
            <br />
        </asp:Panel>
4

1 に答える 1

0

私は自分の答えを見つけたと思います.... DataList の ASP で、取り出した vb に onItemDataBound="dlShippingList_ItemDataBound" を追加しました ... dlShippingList.ItemDataBound を処理します。

于 2013-01-17T20:44:22.847 に答える