Пользовательский файл xml aspdotnetstorefront

Для предъявления по месту требования:

Я создал xml-файл с именем partnerReport.xml.config. Его цель — получить заказы, соответствующие партнеру, чтобы партнер мог просматривать свои заказы. Чтобы проверить это, я хотел, чтобы заказы были перечислены в файле lat_account.aspx на данный момент. К сожалению, в настоящее время он покажет мне заказы только для AffiliateID, равного 0. Таким образом, я знаю, что попадаю в базу данных, и я знаю, что она показывает мне данные, но не показывает данные, основанные на партнерском идентификаторе. партнерский логин. Любая помощь будет принята с благодарностью. Эти файлы взяты из мультимагазина AspDotNetStoreFront. Мой код ниже.

AffiliateReport.xml.config

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<package version="2.1" displayname="Affiliate Report" debug="false" includeentityhelper="true" allowengine="true">
<query name="AffiliateReport" rowElementName="AffiliateOrders">
<sql>
    <![CDATA[
            SELECT * from Orders with (NOLOCK)
            LEFT JOIN Affiliate on Affiliate.AffiliateID = Orders.AffiliateID
            WHERE  Orders.AffiliateID = @affiliateID
        ]]>
</sql>
<queryparam paramname="@affiliateID" paramtype="runtime" requestparamname="AffiliateID" sqlDataType="int" defvalue="0" validationpattern="^\d{1,10}$" />
</query>
<PackageTransform>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aspdnsf="urn:aspdnsf" exclude-result-prefixes="aspdnsf">
  <xsl:output method="html" omit-xml-declaration="yes" />
  <xsl:param name="LocaleSetting" select="/root/Runtime/LocaleSetting" />
  <xsl:param name="WebConfigLocaleSetting" select="/root/Runtime/WebConfigLocaleSetting" />
  <xsl:param name="XmlPackageName" select="/root/System/XmlPackageName" />  
  <xsl:param name="AffiliateID" select="/root/Runtime/WebConfigLocaleSetting" />

  <xsl:template match="/">
      <table width="90%">
          <tr>
              <td>Order Number</td>
              <td width="10px"> </td>
              <td>Affiliate ID</td>
              <td width="10px"> </td>
              <td>Total</td>
          </tr>

              <xsl:for-each select="/root/AffiliateReport/AffiliateOrders">
              <tr>
                  <td><xsl:value-of select="OrderNumber" /></td>
                  <td> </td>
                  <td><xsl:value-of select="AffiliateID" /></td>
                  <td> </td>
                  <td>$<xsl:value-of select="OrderTotal" /></td>
              </tr>    
              </xsl:for-each>
      </table>
  </xsl:template>
</xsl:stylesheet>
</PackageTransform>
 </package>

Из строки 313 lat_account.aspx я добавил следующий код

<asp:Literal ID="XmlPackage_AffiliateOrders" runat="server" Mode="PassThrough" />

Из строки 168 lat_account.aspx.cs я добавил следующий код

XmlPackage_AffiliateOrders.Text = AppLogic.RunXmlPackage ("affiliatereport.xml.config", base.GetParser, ThisCustomer, SkinID, String.Empty, String.Format("AffiliateID={0}", AffiliateID), true, true);

Заранее спасибо!


person danny    schedule 08.11.2013    source источник


Ответы (2)


Вы уверены, что передаете правильное значение идентификатора партнера? Я предполагаю, что переменная установлена ​​​​неправильно. Вы должны попытаться выполнить отладку в той строке, где вы устанавливаете идентификатор.

Кроме того, вы можете вручную установить другой действительный идентификатор партнера.

XmlPackage_AffiliateOrders.Text = AppLogic.RunXmlPackage ("affiliatereport.xml.config", base.GetParser, ThisCustomer, SkinID, String.Empty, String.Format("AffiliateID={0}", 5), true, true);

person Michael Clausing    schedule 26.12.2013

Добавьте это в начало lat_account.aspx:

<%@ Register Src="~/controls/XmlPackageControl.ascx" TagName="XmlPackage" TagPrefix="adnsf" %>

Добавьте это в lat_account.aspx, где вы хотите, чтобы ваш XmlPackage отображался:

<adnsf:XmlPackage runat="server" PackageName="AffiliateReport.xml.config" ID="AffiliateReportPackage" />

Добавьте это в метод Page_Load файла lat_account.aspx.cd после строк, в которых была заполнена переменная AffiliateID:

AffiliateReportPackage.RuntimeParams = string.Format("LoggedInAffiliateID={0}", AffiliateID);

Измените параметр xmlpackage sql на это:

<queryparam paramname="@affiliateID" paramtype="runtime" requestparamname="LoggedInAffiliateID" sqlDataType="int" defvalue="0" validationpattern="" />
person FriendScottN    schedule 05.11.2015