Ajax Accordion - найдено несколько элементов управления с одинаковым идентификатором '_content' - PullRequest
0 голосов
/ 08 сентября 2010

Я динамически добавляю панели аккордеона в Accordion Control. Когда я добавляю одну панель, нет проблем, но при попытке добавить 2-ю панель я получаю исключение: Найдено несколько элементов управления с одинаковым идентификатором '_content'

Я пытался назначить уникальные идентификаторы панелям следующим образом, но не радость. Может кто-нибудь, пожалуйста, помогите?

Спасибо

Rob.

if (User.IsInRole(@"arcpet\RDLM – Tradecapture Initial Margin Users – Security"))

{ // строим заголовок для панели AccordionPane pneTCaptureInitalMargin = new AccordionPane (); pneTCaptureInitalMargin.HeaderContainer.Controls.Add (new LiteralControl ("(TCIM) T / Capture Initial Margin")); pneTCaptureInitalMargin.ID = "AccordionPane" + Guid.NewGuid (). ToString (); pneTCaptureInitalMargin.HeaderContainer.ID = "HeaderContainer" + Guid.NewGuid (). ToString ();

    //build content for pane
    pneTCaptureInitalMargin = AddHyperLink("Trade Books & Markers", "TradeBook/TradeBook.aspx?4", pneTCaptureInitalMargin);
    acc.Panes.Add(pneTCaptureInitalMargin);

    pneTCaptureInitalMargin = AddHyperLink("+Create New Records", "TradeBook/TradeBookDetail.aspx?acPane=4&type=new", pneTCaptureInitalMargin);
    acc.Panes.Add(pneTCaptureInitalMargin);

    pneTCaptureInitalMargin = AddHyperLink("Bache Account Mappings", "BacheAccount/BacheAccountSettings.aspx?4", pneTCaptureInitalMargin);
    acc.Panes.Add(pneTCaptureInitalMargin);

    pneTCaptureInitalMargin = AddHyperLink("+Create New Record", "BacheAccount/BacheAccountSettingsDetail.aspx?acPane=4&type=new", pneTCaptureInitalMargin);
    acc.Panes.Add(pneTCaptureInitalMargin);

    pneTCaptureInitalMargin = AddHyperLink("Run DI Job", "AjaxBODI.aspx?acPane=0&subject=refTradeBook", pneTCaptureInitalMargin);
    acc.Panes.Add(pneTCaptureInitalMargin);
}

if (User.IsInRole(@"arcpet\RDLM – Cash Utilisation Users – Security"))
{
    //build header for pane
    AccordionPane pneCashUtilisation = new AccordionPane();
    pneCashUtilisation.HeaderContainer.Controls.Add(new LiteralControl("(CU) Cash Utilisation"));
    pneCashUtilisation.ID = "AccordionPane" + Guid.NewGuid().ToString();
    pneCashUtilisation.HeaderContainer.ID = "HeaderContainer" + Guid.NewGuid().ToString();

    //build content for pane
    pneCashUtilisation = AddHyperLink("Trade Books & Markers", "TradeBook/TradeBook.aspx?5", pneCashUtilisation);
    acc.Panes.Add(pneCashUtilisation);

    pneCashUtilisation = AddHyperLink("+Create New Records", "TradeBook/TradeBookDetail.aspx?acPane=5&type=new", pneCashUtilisation);
    acc.Panes.Add(pneCashUtilisation);

    pneCashUtilisation = AddHyperLink("Trade Book Overheads", "TradeBook/TradeBookOverhead.aspx?5", pneCashUtilisation);
    acc.Panes.Add(pneCashUtilisation);

    pneCashUtilisation = AddHyperLink("+Create New Record", "TradeBook/TradeBookOverheadDetail.aspx?acPane=5&type=new", pneCashUtilisation);
    acc.Panes.Add(pneCashUtilisation);

    pneCashUtilisation = AddHyperLink("Run DI Job", "AjaxBODI.aspx?acPane=0&subject=refTradeBook", pneCashUtilisation);
    acc.Panes.Add(pneCashUtilisation);
}

1 Ответ

3 голосов
/ 09 сентября 2010

Исправлено! Не знаю почему, но назначение PaneId непосредственно после объявления (в следующей строке) имеет решающее значение.

...