2012-02-01 4 views
4

Прямо сейчас у меня есть таблица ASP. Я могу добавить строки и ячейки в эту таблицу просто отлично. То, что я хотел бы сделать, вместо того, чтобы ячейка просто отображала текст, я бы хотел добавить элемент управления. Например, кнопка.Добавить ASP Controls в таблицу динамически

Прямо сейчас, моя первая мысль о том, как это сделать, заключается в том, чтобы положить <ASP:Button ... в качестве атрибута таблицы. Но моя кишка говорит мне, что эта работа не будет работать. Более того, я, вероятно, не мог добавить функцию для обращения к кнопке.

Может кто-нибудь помочь указать мне в правильном направлении, как это сделать?

+0

asp или asp.net? –

+0

Покажите нам, что у вас есть. –

ответ

5

Вам нужно добавить элемент управления в ячейку таблицы. Просто вызовите метод Controls.Add в ячейке и добавьте элемент управления. Ниже приведен краткий эскиз, который должен указывать на вас в правильном направлении.

 Button b = new Button(); 
     c.Controls.Add(b); 
0

Вопрос зависит от того, какой источник предназначен для ваших элементов управления. Бар далеко, самый эффективный способ сделать это происходит через data binding, даже если ваш источник данных - это всего лишь функция Enumerable.Range().

В противном случае вам необходимо создать экземпляр ваших элементов управления и добавить их в коллекцию Control ячейки таблицы, в которой они будут принадлежать. Вы можете просто использовать синтаксис += для добавления обработчиков событий. Хитрость здесь заключается в том, что код для создания и добавления кнопки должен снова запускаться на каждые postback, и ему нужно будет запустить до фазу page_load жизненного цикла asp.net.

2

Предполагается, что у вас есть пустой ASP: Таблица на вашей странице с определенными строками (только для шоу действительно).

protected void Page_Init(object sender, EventArgs e) 
{ 
    foreach (TableRow row in this.Table1.Rows) 
    { 
     foreach (TableCell cell in row.Cells) 
     { 
      Button btn = new Button(); 
      btn.Text = "Some Button"; 
      btn.Click += new EventHandler(btn_Click); 
      cell.Controls.Add(btn); 
     } 
    } 
} 

void btn_Click(object sender, EventArgs e) 
{ 
    ((Button)sender).Text = "Just Clicked"; 
} 
+0

Я создаю 'System.Web.UI.WebControls.Button', но у него нет свойства' .Click'. Я создаю неправильный тип кнопки? – user489041

+0

.Click - это событие, а не свойство. Используете ли вы VB или C#? – theG

+0

Я использую VB.Net для этого – user489041

Смежные вопросы