ASPX页面显示来自SQL表的多条记录(DetailsView方法)

时间:2011-10-19 17:08:53

标签: asp.net detailsview

场景:在Page1.aspx中,用户提交zipcode&城市和命中进入。然后我将控件传递给Page2.aspx,带有zipcode&市。

在第2页,我将从匹配邮政编码的表中查询。市。如果找到,我将获得1到n个记录。

现在我需要以下面的方式显示记录。


客户名称:Customer1

客户电话:201201201

客户城市:NewCity


客户名称:Customer2

客户电话:303013010

客户城市:OldCity


客户名称:Customer3

客户电话:45646466

客户城市:CurrentCity


上面的每条记录都是两列,第一列为标题,第二列为值。我想在一个页面中显示最多8个客户(上面我已经显示了3个客户),然后将页面编号。单击下一页,显示下一组8条记录。

请建议最好的控制。我想到了DetailsView,但不知道我是否可以使用Detailsview在一个页面中显示多达8个匹配项。

请建议或任何其他替代方案。

2 个答案:

答案 0 :(得分:2)

这是如何使用转发器控件显示结果的示例....

ASP.NET Repeater与AlternatingItemTemplate,SeparatorTemplate,HeaderTemplate和FooterTemplates以及ItemTemplate一起使用。

 <asp:Repeater ID="NewsListRepeater" runat="server">

 <HeaderTemplate>Funky Title<br /><br /></HeaderTemplate>

  <ItemTemplate>
     <%# DataBinder.Eval(Container.DataItem, "SpecialNumber") %><br />
     <%# DataBinder.Eval(Container.DataItem, "SpecialLetters") %><br />
  </ItemTemplate>

  <SeparatorTemplate>
     ------<br />
  </SeparatorTemplate>

 <AlternatingItemTemplate>
     <i><%# DataBinder.Eval(Container.DataItem, "SpecialNumber") %></i><br />
    <i><%# DataBinder.Eval(Container.DataItem, "SpecialLetters") %></i><br /> 
  </AlternatingItemTemplate>

  <FooterTemplate><br />End of the funky stuff</FooterTemplate>

在代码隐藏文件中,以下代码用于创建DataTable,然后创建一些简单数据以放入DataTable中,仅用于演示目的,然后我们将其绑定到Repeater。在现实世界中,您将将Repeater绑定到数据库调用的结果,甚至可能是XML文件。

protected void Page_Load(object sender, EventArgs e)
{
   // create a datatable
   DataTable newsDataTable = new DataTable();

   // add some columns to our datatable
   newsDataTable.Columns.Add("SpecialNumber");
   newsDataTable.Columns.Add("SpecialLetters");

   // create some rows in our data
   string _letters = "ABCDE";
  for (int i = 1; i <= 5; i++)
  {
    DataRow newsDataRow = newsDataTable.NewRow();
    newsDataRow["SpecialNumber"] = i;
    newsDataRow["SpecialLetters"] = _letters.Substring(5 -i);
    newsDataTable.Rows.Add(newsDataRow);
  }

  // bind our datatable to our repeater
   NewsListRepeater.DataSource = newsDataTable;
  NewsListRepeater.DataBind();
} 

并且输出就是这样......

Funky Title

1
E
------
2
DE
------
3
CDE
------
4
BCDE
------
5
ABCDE

End of the funky stuff

我希望它会帮助你......

答案 1 :(得分:1)

您可以使用任何模板化的数据绑定控件,如DataList或DataRepeater。

尝试将其添加到页面中,然后右键单击选择“编辑项目模板”命令。然后,您可以在案例中添加所需的所有控件,例如标签。