将新参数传递给OnItemDataBound事件中调用的函数

时间:2012-03-30 02:41:51

标签: c# asp.net repeater

我对OnItemDataBound事件有疑问,我希望有人可以帮助我。

现在我有

,函数定义为:

protected void FillRepeater(object sender,RepeaterItemEventArgs e)

我想做的是将参数传递给函数,如下所示:

但我不确定这是可能的吗? 我已将我的功能定义编辑为

protected void FillRepeater(object sender,RepeaterItemEventArgs e,int num)

但我不确定如何编辑标记以传递前2个预期参数?

2 个答案:

答案 0 :(得分:1)

您无法修改ASP.NET服务器控件事件处理程序的签名,但我怀疑您尝试传递当前项的索引或从当前项中获取属性。如果这是你的目标,这里有几行可能会帮助你:

protected void FillRepeater(object sender, RepeaterItemEventArgs e)
{
    // this will get the object that the current repeater item is bound to
    YourItemType item = e.Item.DataItem as YourItemType;

    // this will get the index of the current repeater item
    var collection = repeater.DataSource as List<YourItemType>;
    int itemIndex = collection.IndexOf(e.Item.DataItem as YourItemType);
}

答案 1 :(得分:0)

您可以使用e.Item在转发器中找到控件。如果需要的话,您可以致电父级获取正好位于中继器上方的对象。 我要做的就是将我想传递的数据放入隐藏字段并按原样检索它们

Dim hListID As HiddenField = e.Item.FindControl("hListID")