Есть ли способ написать код ASP.NET только внутри панели, используя код C#?

У меня есть страница с панелью. Что я хочу знать, есть ли способ написать код ASP.NET непосредственно в теге asp:panel во время выполнения (динамически)? В любом случае, используя AJAX или что-то в этом роде? На самом деле у меня есть панель, которая содержит некоторые элементы управления и должна быть записана несколько раз в родительской панели динамически.


person Aishwarya Shiva    schedule 22.05.2012    source источник
comment
вы можете разместить литерал и написать внутри него код, или вы можете динамически добавлять элементы управления на панель   -  person Aristos    schedule 22.05.2012
comment
Я хочу знать о второй части. На самом деле у меня есть панель, которая содержит некоторые элементы управления и должна быть записана несколько раз в родительской панели динамически.   -  person Aishwarya Shiva    schedule 22.05.2012
comment
не так много мыслей, чтобы знать, просто создайте элементы управления и используйте Panel.Controls.Add();   -  person Aristos    schedule 22.05.2012
comment
Возможно, вы ищете asp:repeater с ItemTemplate?   -  person Filburt    schedule 22.05.2012
comment
Я не совсем понимаю вопрос, но не думали ли вы загрузить пользовательский элемент управления внутри панели?   -  person Allensb    schedule 22.05.2012
comment
@Allensb о да, я хочу этого. Я идиот, как я могу забыть о пользовательских элементах управления: D, спасибо, что подсказали мне. и так вопрос был в том, что пользовательский элемент управления, который я хочу добавить несколько раз в панель во время выполнения   -  person Aishwarya Shiva    schedule 22.05.2012
comment
@AishwaryaShivaPareek Не могли бы вы добавить простой пример желаемого HTML-результата? Мне кажется, что есть гораздо более простое решение, чем добавление элементов управления из кода.   -  person Filburt    schedule 22.05.2012


Ответы (1)


Вы можете использовать теги <% %> и поместить в них свой код.

Например, вы можете динамически устанавливать ширину панелей, используя:

<asp:Panel ID="Panel1" runat="server" 
       BorderColor="#990000" 
       BorderStyle="Solid" 
       BorderWidth="1px" 
       Height="116px" 
       ScrollBars="Both" 
       Width=<% YourWidthFunction() %>>

Изменить: теперь я вижу, чего вы пытаетесь достичь. Из вашего комментария я бы не рекомендовал использовать Response.Write().

Я хотел бы использовать:

var newPanel = new Panel();
var myLabel = new Label();

newPanel.Controls.Add(myLabel);

Вы можете добавить на панель столько элементов управления, сколько хотите, вызвав: newPanel.Controls.Add(control);

person Darren    schedule 22.05.2012
comment
Хорошая попытка, но я не думаю, что это именно то, чего хочет ОП. Из самого вопроса непонятно. Я понимаю эффект, который может иметь модное словечко «динамический», но это не строго динамический. - person Grant Thomas; 22.05.2012
comment
@Mr.Disappointment - ну ладно. Я предполагал, что он был после чего-то подобного, если нет, я удалю свой ответ. - person Darren; 22.05.2012
comment
Спасибо @DarrenDavies, но ваш ответ не совсем такой, как я хотел, но он дал мне подсказку о том, как поступить следующим образом ‹asp:panel›‹% response.write(TAGS); %› ‹/asp:panel› теперь хочу спросить, что это будет работать? - person Aishwarya Shiva; 22.05.2012