gpt4 book ai didi

c# - 是否可以将值传递给 Repeater 的 SelectMethod?

转载 作者:可可西里 更新时间:2023-11-01 08:21:59 25 4
gpt4 key购买 nike

ASP.Net 4.5 引入了通过 SelectMethod 属性将数据绑定(bind)到 Repeater 等控件的新方法:

<asp:Repeater runat="server" ItemType="MyData.Reference" 
SelectMethod="GetReferences">

调用代码隐藏方法

public IEnumerable<Reference> GetReferences()

在嵌套中继器的场景下,是否可以通过某种方式给这个select方法传递一个参数,使其根据外层中继器的Item取不同的数据?

例子:

<asp:Repeater runat="server" ItemType="MyData.Reference" 
SelectMethod="GetReferences(Item.ID)">

应该打电话

public IEnumerable<Reference> GetReferences(int id)

我知道这可以通过 ItemDataBound 事件来实现,但我想使用 SelectMethod 和 ItemType 的更简单和更清晰的语法。

SelectMethod 是否允许以某种方式传递参数?

如果没有,是否有另一种干净的方法从我的 SelectMethod 中的外部 Repeater Item 获取值?

最佳答案

在等待答案的过程中,我尝试了一下,找到了以下解决方案。

这可能不是最好的方法,但到目前为止我没有发现它有任何问题,而且它非常简单,所以我就把它扔在那里。

<asp:Repeater runat="server" ItemType="MyData.Reference" 
DataSource='<%# GetReferences(Item.ID) %>'>

基本上,我在这里所做的是将 SelectMethod 替换为 DataSource(Intellisense 不会建议它,但它仍然有效)。

这样我就可以将一个值传递给 GetReferences 方法,然后使用模型绑定(bind)的返回值。

到目前为止,这是我遇到的最短的解决方案。

关于c# - 是否可以将值传递给 Repeater 的 SelectMethod?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12804875/

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