Установка UniqueId элемента управления ASP.NET в коде позади

У меня есть куча динамически созданных флажков в коде, например:

CheckBox[] checks = new CheckBox[n];

Где n — целое число, вычисляемое во время выполнения. Я добавил все эти флажки в сетку, поэтому все они видны на моей веб-странице ASP.NET, но теперь я хочу добавить их все в качестве триггеров на панель обновления. Таким образом, мне нужно сделать это в коде программной части:

<asp:UpdatePanel id="upPanel" runat="server">
    <ContentTemplate>
        // ...Contents of UpdatePanel...
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID=[Insert CheckBox Unique ID here] EventName="Click" />

            //... n AsyncPostBackTriggers, one for each CheckBox ...

        <asp:AsyncPostBackTrigger ControlID=[Insert CheckBox Unique ID here] EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

Но я понимаю, что мои динамически созданные CheckBoxes не имеют UniqueID, поэтому я не могу установить ControlID для AsyncPostBackTrigger. Есть ли способ установить уникальный идентификатор элемента управления ASP.NET в коде программной части?

Я пробовал это до сих пор:

for (int i=0; i<n; i++)
{
    AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
    trigger.ControlID = checks[i].UniqueID;
    trigger.EventName = "Click";
    upPanel.Triggers.Add(trigger);
}

Но в отладчике я вижу, что checks[i].UniqueID = "", что на самом деле не работает.


person user3685285    schedule 09.09.2014    source источник
comment
Что происходит, когда вы пытаетесь установить свойство UniqueID?   -  person John Saunders    schedule 09.09.2014
comment
checks[i].UniqueID = checkbox_ + Convert.ToString(i); В нем говорится, что свойство UnieuqID доступно только для чтения и не может быть отредактировано таким образом.   -  person user3685285    schedule 09.09.2014
comment
Попробуйте ID свойство.   -  person John Saunders    schedule 09.09.2014
comment
Отлично, это сработало! Но теперь у меня другая проблема. Я хотел использовать этот метод, чтобы избавиться от постбэков, но кажется, что панель не обновляется должным образом. Я оставлю это для другого вопроса. Спасибо!   -  person user3685285    schedule 09.09.2014


Ответы (1)


Вы можете установить свойство ID созданных элементов управления.

person John Saunders    schedule 09.09.2014