0

私は子供が何であるかを定義する必要があります:

私は次のようなものを書く必要がありますvar parent = categoryID == ParentCategoryID = 0

これが私のASCXコントロールです。

protected void Page_Load(object sender, EventArgs e)
{

    categoriesBLL categoriesLogic2 = new categoriesBLL();
    rptCategories.DataSource = categoriesLogic2.GetCategories();
    rptCategories.DataBind();

}

次のように表示されるクエリの値を表示しています。

<ul class="categories">
<li>Computers</li>
<li>Hardware</li>
<li>Software</li>
</ul>

ご覧のとおり、ハードウェアとソフトウェアはサブカテゴリである必要がありますが、それらは別のLIと同じULブロックに表示されます。

私のデータセットは次のようになります。

ここに画像の説明を入力してください

ここにサブカテゴリを決定するクエリがあります:

SELECT        c1.CategoryID, c2.ParentCategoryID, 
              c1.Name, c2.Name AS ParentName, 
              c1.Published, c1.Deleted, c1.PictureID

FROM          Nop_Category AS c1 INNER JOIN
              Nop_Category AS c2 ON c1.ParentCategoryID = c2.CategoryID

WHERE        (c1.Deleted = 0) 
AND          (c1.Published = 1) 
AND          (c1.ParentCategoryID = @ParentCategoryID)

しかし、カテゴリの値をデータセットに渡して結果を返すにはどうすればよいですか?次に、新しいulliを作成する必要があります。

<ul class="sub-category">
<li>Hardware</li>
<li>Software</li>
</ul>
4

1 に答える 1

1
  1. ストアドプロシージャを作成し、その中にSQLクエリを出力します。また、このプロシージャはパラメータ@ParentCategoryIDを受け取り、必要な結果を返します。
  2. .xsdを右クリックして、クエリを追加します
  3. [コマンドタイプの選択]ダイアログで、[既存のストアドプロシージャを使用する]を選択します。手順1で作成したストアドプロシージャを選択します。
  4. メソッドに好みの名前を付けます(例:GetSubCategoriesByParentId)
  5. [完了]をクリックします

これで、このNop_CategoryTableAdapter.GetSubCategoriesByParentIdのようなコードでメソッドを使用し、parentCategoryIdを渡してサブカテゴリを取得できます。

于 2012-07-08T19:51:22.953 に答える