2013-09-03 3 views
1

Я делаю пользовательские Пейджер Шаблон для GridView & пытается получить что-то вроде: < 1 2 3 4>Dynamic LinkButton на GridView PagerTemplate не стреляя событие

У меня возникли проблемы, нажав на номера ...

Внутри PagerTemplate я имею Заполнитель с именем «phLinks», который заполняется на DataBound событии, как это:

protected void DataBound(object sender, EventArgs e) 
    { 
     if (grid.PageCount > 1) 
     { 
      for (int i = 0; i < grid.PageCount; i++) 
      { 
       phLinks.Controls.Add(new LiteralControl("<li>")); 
       LinkButton lb = new LinkButton { Text = (i + 1).ToString(), Enabled = grid.PageIndex != i, CommandArgument = i.ToString() }; 

       lb.Command += new CommandEventHandler(lb_Command); 
       lb.CommandName = "Button"; 

       //lb.Click += new EventHandler(lb_Click); 

       phLinks.Controls.Add(lb); 
       phLinks.Controls.Add(new LiteralControl("</li>")); 
      } 
     } 
    } 

Обратите внимание, что я пытался сначала нажмите Event а затем Command Event, в обоих случаях я получаю сообщение назад, но событие не запускается ...

Что мне здесь не хватает?

+0

Почему вы используете PageTemplate? Если вы установите свойство PagerSettings-Mode = "Numeric", вы получите числовой пейджер. –

+0

Я использую PagerTemplate, потому что мне нужно добавить другую информацию в пейджер – Sergio

+0

lb.CommandName = "Button"; измените это на lb.CommandName = "Страница"; –

ответ

2

Либо связать ваш GridView на каждом постбэка:

protected void Page_Load(object sender, EventArgs e) 
    { 
     MyGridView.DataBind(); 

    } 

ИЛИ отключить ViewState для GridView ::

<asp:GridView ID="MyGridView" EnableViewState="false" ... />.

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