Ok, I was able to make this work a slightly different way. For the transformation for each of the repeaters that I want Add New functionality, I have the following:
<asp:Literal ID="litHeader" runat="server"/>
<li><%# Eval("SomeFieldName") %></li>
<script runat="server">
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
if (this.Parent is IDataItemContainer)
{
IDataItemContainer cont = this.Parent as IDataItemContainer;
if (cont != null)
{
System.Data.DataRowView drv = (System.Data.DataRowView)cont.DataItem as System.Data.DataRowView;
if (drv != null)
{
if (DataItemIndex == 0) {
if (CMSContext.ViewMode != ViewModeEnum.LiveSite && CMSContext.CurrentUser.IsAuthorizedPerClassName("My.ClassName", "Create")) {
litHeader.Text = "<h3><a class='CMSEditModeButtonAdd' href='/CMSModules/Content/CMSDesk/Edit/EditFrameset.aspx?action=new&nodeid=" + Eval("NodeParentID") + "&classid=" + Eval("NodeClassID") + "'>Add New</a> List Heading Here</h3><ul>";
}
else {
litHeader.Text = "<h3>List Heading Here</h3><ul>";
}
}
else {
litHeader.Visible = false;
}
}
}
}
}
</script>