将ASP.NET中继器控件集成到当前页面
因此,我目前有一个aspx页面,显示任何一名员工的详细信息,该页面主要使用ASP标签进行设置。我有一个名为“getstaffdata”的子例程,它在加载时填充页面(通过子例程) 我想将此转换为一个页面,显示一个或多个工作人员的详细信息,一个接一个。所以我考虑使用repeater控件,但我不确定如何转换页面。人员用户标识通过查询字符串传递,但我只是对如何为repeater控件创建数据源感到困惑将ASP.NET中继器控件集成到当前页面,.net,asp.net,vb.net,.net,Asp.net,Vb.net,因此,我目前有一个aspx页面,显示任何一名员工的详细信息,该页面主要使用ASP标签进行设置。我有一个名为“getstaffdata”的子例程,它在加载时填充页面(通过子例程) 我想将此转换为一个页面,显示一个或多个工作人员的详细信息,一个接一个。所以我考虑使用repeater控件,但我不确定如何转换页面。人员用户标识通过查询字符串传递,但我只是对如何为repeater控件创建数据源感到困惑 如有任何意见,将不胜感激 数据源可以是任何类型的集合、数组、数据表或类似类型。只需设置引用(repeat
如有任何意见,将不胜感激 数据源可以是任何类型的集合、数组、数据表或类似类型。只需设置引用(repeater.DataSource=someCollection;)和绑定(repeater.DataBind())。所以,从Linq2Sql、EF、数据集/表格适配器、DataReader获取您的集合。。。只要确保它在任何集合对象类型中。中继器足够智能,可以使用其中的对象。
您可以使用简单的内部转发器项模板访问每个对象的属性(值)。数据源可以是任何类型的集合、数组、数据表或类似对象。只需设置引用(repeater.DataSource=someCollection;)和绑定(repeater.DataBind())。所以,从Linq2Sql、EF、数据集/表格适配器、DataReader获取您的集合。。。只要确保它在任何集合对象类型中。中继器足够智能,可以使用其中的对象。
您可以使用简单的内部转发器项目模板访问每个对象的属性(值)。基本轮廓: 1) 在原始标记周围放置一个转发器:
<asp:Repeater ID="myRepeater" runat="server">
<ItemTemplate>
[your original markup]
</ItemTemplate>
</asp:Repeater>
4) 现在在中继器的ItemDataBound事件中绑定ItemTemplate内的控件。要记住两件重要的事情:现在必须使用FindControl获得控件的句柄,并且在绑定页眉和页脚项时,控件将不存在
myRepater_ItemDataBound(...)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Label myLabel = e.Item.FindControl("myLabel");
myLabel.Text = //whatever
}
}
基本纲要:
1) 在原始标记周围放置一个转发器:
<asp:Repeater ID="myRepeater" runat="server">
<ItemTemplate>
[your original markup]
</ItemTemplate>
</asp:Repeater>
4) 现在在中继器的ItemDataBound事件中绑定ItemTemplate内的控件。要记住两件重要的事情:现在必须使用FindControl获得控件的句柄,并且在绑定页眉和页脚项时,控件将不存在
myRepater_ItemDataBound(...)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Label myLabel = e.Item.FindControl("myLabel");
myLabel.Text = //whatever
}
}
我想你会:
- 顶部有一个中继器,用于显示员工姓名和ID的列表。通过复选框或其他控件选择行将填充:
- 另一个中继器在底部。这将显示在第一个中继器中选择的人员的详细信息
[十] 1 |约翰·多伊
[]2 |简平原
[十] 3 |玛丽相反
[]4 |詹姆斯·布朗
[X]
顺便说一句,是一个选中的复选框。让我回到ASCII艺术的时代;-)
底部中继器
NameDoBAddressTel约翰·多伊24/12/197079a死胡同,沃里克埃文莫特1789 999 6669
玛丽街5/3/198223号伦敦市相反街0207 1234 5678 您将需要两个Sql查询或存储过程。您需要修改当前驱动页面的内容,并创建或重新使用另一个内容 现有查询类似于:
SELECT*FROM Staff,其中StaffID=x
-x可能是通过查询字符串传递到页面的内容
您需要修改此项以匹配多个员工ID。我建议使用quick n dirty方法传入一个CSV ID列表,例如'1,4,8'
和内部联接
将您的员工
表转换为CSV的表表示形式。SQL Server具有方便的dbo.Split
功能。大多数关系型数据库中都存在类似的情况
您需要创建的一个将只返回按字母顺序排列的ID和员工姓名列表
例如
按姓氏从员工订单中选择ID,Forename+“”+姓氏,Forename
您将Bind
您的顶级中继器(首先,稍后您可以绑定到一组对象)一个由查询填充的DataTable
在此转发器中,用户将选择要查看详细信息的行,然后单击“查看详细信息”类型按钮
单击此按钮时,它将触发一个事件,该事件将在中继器的行(RepeaterItems
)中循环,并记录(作为CSV)所选行的ID(您可以将其存储在该行的控件/元素中)
然后,它将对修改后的查询进行数据库调用,并将CSV ID与之一起传递
然后将详细信息中继器绑定到第二个数据
在谷歌上搜索一下,所有的空白都会被填满;-)
HTH我想你应该:
- 顶部有一个中继器,用于显示员工姓名和ID的列表。通过复选框或其他控件选择行将填充:
- 另一个中继器在底部。这将显示在第一个中继器中选择的人员的详细信息
[十] 1 |约翰·多伊
[]2 |简平原
[十] 3 |玛丽相反
[]4 |詹姆斯·布朗
[X]
顺便说一句,是一个选中的复选框。让我回到ASCII艺术的时代;-)
底部中继器
NameDoBAddressTel约翰·多伊24/12/197079a死胡同,沃里克埃文莫特1789 999 6669
玛丽街5/3/198223号伦敦市相反街0207 1234 5678 您将需要两个Sql查询或存储过程。您需要修改当前驱动页面的内容,并创建或重新使用另一个内容 现有查询类似于:
SELECT*FROM Staff,其中StaffID=x
-x可能是通过查询字符串传递到页面的内容
您需要修改此项以匹配多个员工ID。我建议使用quick n dirty方法传递CSV ID列表,例如'