比较和更改数据集中的2个值,然后通过转发器控制输出

时间:2012-07-08 18:27:52

标签: c# asp.net sql sql-server-2008 repeater

我需要定义一个孩子是什么:

我需要写一些类似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块中。

我的数据集如下所示:

enter image description here

我有一个查询,它将在这里确定子类别:

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)

但是如何将类别的值传递到我的数据集中以便返回结果? 然后我需要创建一个新的ul li:

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

1 个答案:

答案 0 :(得分:1)

  1. 创建一个存储过程并在其中输出sql查询,此proc将采用参数@ParentCategoryID 并返回您想要的结果
  2. 右键单击.xsd并添加查询
  3. 在“选择命令类型”中 对话框选择使用exisitng存储过程选择存储的 您在步骤1中创建的程序
  4. 为方法指定您喜欢的名称,例如GetSubCategoriesByParentId
  5. 点击完成
  6. 现在您可以在代码中使用此方法,如Nop_CategoryTableAdapter.GetSubCategoriesByParentId,并传递parentCategoryId以获取子类别