Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обработчик динамического контрола / 3 сообщений из 3, страница 1 из 1
28.08.2006, 18:08
    #33947774
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик динамического контрола
Есть web user control, в котором динамически на основе переданной в него коллекции данных генерируются в OnLoad контролы.
Среди динамически сгенерированных контролов есть кнопки (linkButton).
При клике по динамической linkbutton происходит перезагрузка страницы, далее выполнение обработчика кнопки, в котором
меняем коллекцию данных. А далее необходимо перестроить все контролы в соответсвии с новыми данными, но этап на котором
строятся контролы уже пройден и отображаемые контролы не соответсявуют данным, на основе которых они построены.
При повторной перезагрузке страницы все конечно выстраивается как надо, но так пиходится два раза кликать на кнопку, что не есть хорошо.

Как выполнить обработчик кнопки до построения контролов?
...
Рейтинг: 0 / 0
28.08.2006, 18:21
    #33947800
WSA
WSA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик динамического контрола
>>Как выполнить обработчик кнопки до построения контролов?
Что-то мне кажется что лучше просто из правильного места заполнять коллекцию... может код посмотрим?
...
Рейтинг: 0 / 0
28.08.2006, 18:41
    #33947864
ePilgrim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обработчик динамического контрола
Здравствуйте, WSA, Вы писали:

>>>Как выполнить обработчик кнопки до построения контролов?
WSA>Что-то мне кажется что лучше просто из правильного места заполнять коллекцию... может код посмотрим?


Сорри, сразу не залогинился и сообщение оставил от "анонима".
Вот код:



public partial class MyUserControl : System.Web.UI.UserControl


    private Collection<MyItem> _Collection;    
 

    public Collection<MyItem> DataSoucre
    {
        get
        {
            
            return _Collection;
        }
        set
        {           
           _Collection = value;         
        }
    }  

    

    private void CreateControls()
    {

        TextBox txt;        
        LinkButton bt;
        Table table = new Table();
        TableRow row;
        TableCell cell;

        table.ID = "ItemsTable";

        phItems.Controls.Clear();

        for (int i = 0; i < _Collection.Count; i++)
        {

            row = new TableRow();
            row.ID = "tr" + i.ToString();
            cell = new TableCell();
            cell.ID = "tc0" + i.ToString();
            cell.Attributes.Add("align=", "center");

            
                txt = new TextBox();
                txt.ID = _Collection[i].ItemType + i.ToString();
                cell.Controls.Add(txt);                
            

            row.Cells.Add(cell);

            bt = new LinkButton();
            bt.Attributes.Add("runat", "server");            
            bt.Text = "remove";
            bt.CommandArgument = i.ToString();
            bt.Click += new EventHandler(this.RemoveItem);
            cell = new TableCell();
            cell.ID = "tc1" + i.ToString();
            cell.Controls.Add(bt);
            row.Cells.Add(cell);
            table.Rows.Add(row);
        }

        phItems.Controls.Add(table);
    }


   
    protected void Page_Load(object sender, EventArgs e)
    {        

        if (HiddenField.Value != "")
        {
            _Collection = (Collection<MyItem>)DeSerialize(HiddenField.Value, typeof(Collection<MyItem>));
            if (IsPostBack) CreateControls();
        }
    }

    
    private void RemoveItem(Object sender, EventArgs e)
    {        
        int index = int.Parse((sender as LinkButton).CommandArgument);

        _Collection.RemoveAt(index);
        HiddenField.Value = Serialize(_Paragraphs);

    }    
    
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Обработчик динамического контрола / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]