2013-07-09 4 views
0

У меня есть Repeater:Передача текущего элемента к функции

<asp:Repeater runat="server" ID="RepeaterCategorie"> 
    <ItemTemplate> 
     <%#((isBlocked()) ? "true" : "false") %> 
    </ItemTemplate> 
</asp:Repeater>   

где я вызываю функцию на .cs. Я хотел бы передать текущий элемент (я имею в виду, текущий элемент итерации в списке источника данных) для этой функции. Как я могу это сделать, не передавая ссылку через функцию isBlocked?

+0

Почему вы делаете, что в рамках повторителя? Почему бы не выполнить эту обработку перед отображением на странице? –

+0

Потому что это свойство не внутри объекта, которое я повторяю. – markzzz

ответ

2

HTML

<asp:Repeater runat="server" ID="RepeaterCategorie" 
    OnItemDataBound="RepeaterCategorie_ItemDataBound"> 
    <ItemTemplate> 
     <asp:Label runat="server" Id="lblBool"></asp:Label> 
    </ItemTemplate> 
</asp:Repeater> 

CS

protected void RepeaterCategorie_ItemDataBound(
    object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || 
     e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     var lblBool = (Label)e.Item.FindControl("lblBool"); 
     lblBool.Text = isBlocked(sender, e) ? "true" : "false"; 
    } 
} 
+0

Как я уже сказал, «без прохождения ссылки через функцию isBlocked» – markzzz

+0

@markzzz: извините, пропустил эту часть, так как не имеет смысла;) Не могли бы вы немного объяснить, почему вы пытаетесь это сделать. Это не только любопытство, это может помочь мне найти решение. –

+0

Например, используя 'object sender, EventArgs e' для функций на .cs: он должен понимать, кто вызывает эту функцию и передает объект! – markzzz

Смежные вопросы