Jag försöker köra ett Command för att leda en användare vidare beroende på vad han har klickat på i en Repeater-kontroll.e.Item.DataItem alltid null när Command triggas i en Repeater-kontroll
Markup:
<code>
<asp:Repeater ID="AttendeesList" runat="server" OnItemCommand="AttendeesList_ItemCommand">
<ItemTemplate>
<tr onmouseover="Highlight(this);" onmouseout="ClearHighlight(this);">
<td><asp:LinkButton CommandName="GoToAnalyst" ToolTip="<%$ Resources:UserInterface, ToolTipGoToAnalyst %>" ID="btnFullName" runat="server"><%# DataBinder.Eval(Container.DataItem,"FullName") %></asp:LinkButton></td>
<td><asp:LinkButton CommandName="GoToInstitution" ToolTip="<%$ Resources:UserInterface, ToolTipGoToInstitution %>" ID="LinkButton1" runat="server"><%# DataBinder.Eval(Container.DataItem,"Institution") %></asp:LinkButton></td>
<td><%# DataBinder.Eval(Container.DataItem,"PhoneNumber") %></td>
<td>"><%# DataBinder.Eval(Container.DataItem,"EMail") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"WillAttend") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"IsStaff") %></td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</code>
När användaren klickar på ett namn i denna Repeater ska ett "GoToAnalyst"-kommando köras. I min CodeBehind-fil ser det ut så här:
protected void AttendeesList_ItemCommand(object source, RepeaterCommandEventArgs e)
{
//Skapa FormArgs-objekt för att definiera formuläråtgärd
FormArgs args;
switch (e.CommandName)
{
case "GoToAnalyst":
DataRowView row = (DataRowView)e.Item.DataItem;
int analystID = ((DataLayer.DataSets.Events.AttendeesRow)e.Item.DataItem).ID;
args = new FormArgs(analystID, IRDatabasen.Common.FormAction.EditExistingRecord);
AppPage.SwitchForm(IRDatabasen.Common.AppLocation.EditAnalyst, args);
break;
}
}
Som ni ser har jag försökt lägga till en deklaration av ett DataRowView-objekt för att få tillgång till det underliggande dataobjektet för den rad som användaren klickade på i Repeater-kontrollen, men e.Item.DataItem returnerar alltid null.
Jag kanske är lite trött i huvudet, men jag kan inte komma på vad det beror på... Jag får rätt Index-värde för e.Item, men inte något underliggande DataItem-objekt.
Tacksam för hjälp! Även från Per! :)