gpt4 book ai didi

中继器中的 ASP.NET DataGrid

转载 作者:行者123 更新时间:2023-12-04 22:17:13 24 4
gpt4 key购买 nike

我有一个有两列的表:

CommunityID
PersonID

还有一个“人”表(除其他外):
FirstName
LastName

我想为每个社区显示一个不同的 DataGrid,每个 datagrid 只有属于该社区的人。我想在不使用 4 个单独的 SqlDataSource 的情况下执行此操作。

Repeater 看起来是一个好方法,在 ItemTemplate 中有一个 DataGrid,但我似乎无法让它与每次重复的不同值一起工作。

如果有人对更好的方法有任何建议,我将非常感激,因为这是我第一次涉足 ASP.NET 世界

谢谢,

麦克风

最佳答案

就我个人而言,我不会使用 DataGrid 控件,因为它限制了您对输出的控制,并且它们已被更新的 GridView 取代。 & ListView 控件(虽然 DataGrid 是 not obsolete,所以如果你愿意,可以随意使用它)。您可能需要考虑使用替代方案,但您不需要这样做。

要执行您要查找的操作,您将拥有如下标记:

<asp:Repeater runat="server" ID="myRepeater" 
onitemdatabound="Repeater_ItemDataBound">
<ItemTemplate>
<asp:DataGrid runat="server" ID="myDataGrid">
</asp:DataGrid>
</ItemTemplate>
</asp:Repeater>

然后,您将使用以下代码隐藏来连接标记:
protected void Page_Load(object sender, EventArgs e)
{
myRepeater.DataSource = new Object[0];
myRepeater.DataBind();
}

protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataGrid dg = (DataGrid)e.Item.FindControl("myDataGrid");
object o = e.Item.DataItem;// Cast the DataItem as whatever
// your Repeater's DataSource is

// ...
// Do whatever you need to get the
// data source for your DataGrid here
// ...

dg.DataSource = DataGridSourceObjectHere;
dg.DataBind();
}

关键是中继器的 ItemDataBound event,这是每次创建转发器行时调用的方法。您可以在此处对 DataGrid 源进行数据绑定(bind)。您可以使用 RepeaterItemEventArgs 将您需要的任何逻辑放入此方法中。参数来访问您绑定(bind)到中继器的数据项。

关于中继器中的 ASP.NET DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com