0

私は単純な問題だと思っていることに困惑しています。XMLドキュメントの「行番号」として機能する変数をインクリメントする簡単な式を埋め込もうとしています。Visual Basic でリテラル XML を記述します。コードは次のようになります。

<%= From d In orderData
                                       Select <ItemOut quantity=<%= d.OrderQuantity %> lineNumber=<%= i %>>
                                                  <ItemID>
                                                      <SupplierPartID><%= d.VendorPartNo %></SupplierPartID>
                                                  </ItemID>
                                                  <ItemDetail>
                                                      <UnitPrice>
                                                          <Money currency="USD"><%= d.PricePerPackage %></Money>
                                                      </UnitPrice>
                                                      <Description xml:lang="en"><%= d.Description %></Description>
                                                      <UnitOfMeasure><%= d.OrderUOM %></UnitOfMeasure>
                                                  </ItemDetail>
                                                  <%= i = i + 1 %>
                                              </ItemOut>
                                       %>

OrderData の d の各反復が i + 1 を刻むことを期待していましたが、単に「false」を返しています。ここで出力 XML を参照してください。

<ItemOut quantity="1" lineNumber="1">
        <ItemID>
          <SupplierPartID>99999</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">0.00</Money>
          </UnitPrice>
          <Description xml:lang="en">Tub and Tile Caulk Biscuit</Description>
          <UnitOfMeasure>cs</UnitOfMeasure>
        </ItemDetail>false</ItemOut>
      <ItemOut quantity="1" lineNumber="1">
        <ItemID>
          <SupplierPartID>999999</SupplierPartID>
        </ItemID>
        <ItemDetail>
          <UnitPrice>
            <Money currency="USD">0.00</Money>
          </UnitPrice>
          <Description xml:lang="en">Tub and Tile Caulk Almond</Description>
          <UnitOfMeasure>cs</UnitOfMeasure>
        </ItemDetail>false</ItemOut>

このようなことは可能ですか?代わりに関数を呼び出してみました:

lineNumber=<%= incrementI(i) %>>

しかし、それも出力として「false」になります。ここで何が欠けていますか?事前に助けてくれてありがとう!

ビジュアル スタジオ 2013

編集--これが私が言及している機能です:

Private Function incrementI(i As Integer)
    Return i = i + 1
End Function
4

1 に答える 1