powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ajax+gridview+linkbutton
5 сообщений из 5, страница 1 из 1
ajax+gridview+linkbutton
    #34137146
albion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на updatepanel помещаю gridview, одну из колонок которого делаю TemplateField c LinkButton.

Не могу обработать событие нажатия на LinkButton, ни OnClick ни RowCommand не срабатывают.

При нажатии на кнопку GridView вообще пропадает. Чувствую чего то я недопонимаю, так как довольно недавно сталкнулся с ASP.Net.

Помогите :)

Спасибо!
...
Рейтинг: 0 / 0
ajax+gridview+linkbutton
    #34140609
alexxey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
привет, у меня такой же бок...почти аналогичная ситуация... в ходе расследования выяснилось что RowCommand вызывается при клике на хеадер столбца, а также в случае, если кликаешь на батоновский тип...то что висит в ItemTemplate таким образом не ловится...я поймал это на событие
Код: plaintext
1.
OnRowDataBound="gd_RowDataBound"> 
вот так у меня прописано в гриде
Код: plaintext
1.
2.
3.
4.
5.
<asp:TemplateField HeaderText="Name" AccessibleHeaderText="Name" SortExpression="Name">
<ItemTemplate>
<asp:LinkButton ID="lbName" runat="server" CommandName="blah"><%# DataBinder.Eval(Container, "DataItem.Name") %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>

а вот так ловится
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
protected void gd_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if ((GridViewRow)e.Row != null) //если не бардак
        {
            if (((GridViewRow)e.Row).RowIndex >=  0 ) //если не хеадер
            {
                GridViewRow gdr;
                gdr = (GridViewRow)e.Row;
                LinkButton lb; //  для варианта  1 
                LinkButton lb1; // для варианта  2 
                if ((lb = (LinkButton)gdr.Controls[ 2 ].FindControl("lbName")) != null)
                    lb.Click += new EventHandler(this.asp_linkbutton_click);
                if ((lb1 = (LinkButton)gdr.Controls[ 2 ].Controls[ 1 ]) != null)
                    lb1.Click += new EventHandler(this.asp_linkbutton_click);
            }
        }
    }

но, хоть оно и заходит в код и якобы прописывает в обоих случаях процедурку, asp_linkbutton_click, то при клике на поле все равно показывает страницу уже без гридвью... а в обработчик процедуры asp_linkbutton_click не заходит...
Может кт оподкинет идею, какой из 2 вариантов прасильней, и что надо делать, чтобы эта фишка работала. Спасибо.
...
Рейтинг: 0 / 0
ajax+gridview+linkbutton
    #34141169
alexxey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
короче все решается довольно таки просто...
обработчик выглядит так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
protected void gd_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            GridViewRow gdr;
            gdr = (GridViewRow)e.Row;
            LinkButton lb;
            if ((lb = (LinkButton)gdr.Controls[ 2 ].FindControl("lbName")) != null)
                lb.Click += new EventHandler(this.asp_linkbutton_click);
        }
    }
ну и конечно же вешается процедурка типа
Код: plaintext
1.
2.
3.
4.
protected void asp_linkbutton_click(object sender, EventArgs e)
    {
         //делаем всякие безобразия
    }
в гридвью все просто

Код: plaintext
1.
2.
3.
4.
5.
<asp:TemplateField HeaderText="Name" AccessibleHeaderText="Name" SortExpression="Name">
        <ItemTemplate>
                 <asp:LinkButton ID="lbName" runat="server"><%# DataBinder.Eval            (Container, "DataItem.Name") %></asp:LinkButton>
         </ItemTemplate>
</asp:TemplateField>

единственно что надо не забыват ьпро датасурс гридвью, плюс есть бок, что биндинг происходит каждый раз...
...
Рейтинг: 0 / 0
ajax+gridview+linkbutton
    #34141191
Аноним
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, albion, Вы писали:

A>на updatepanel помещаю gridview, одну из колонок которого делаю TemplateField c LinkButton.

A>Не могу обработать событие нажатия на LinkButton, ни OnClick ни RowCommand не срабатывают.

A>При нажатии на кнопку GridView вообще пропадает. Чувствую чего то я недопонимаю, так как довольно недавно сталкнулся с ASP.Net.

A>Помогите :)

A>Спасибо!



короче все решается довольно таки просто...
обработчик выглядит так
вешаем на гридвью обработку события rowDataBound
protected void gd_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridViewRow gdr;
gdr = (GridViewRow)e.Row;
LinkButton lb;
if ((lb = (LinkButton)gdr.Controls[2].FindControl("lbName")) != null)
lb.Click += new EventHandler(this.asp_linkbutton_click);
}
}

ну и конечно же вешается процедурка типа

protected void asp_linkbutton_click(object sender, EventArgs e)
{
//делаем всякие безобразия
}

в гридвью все просто


<asp:TemplateField HeaderText="Name" AccessibleHeaderText="Name" SortExpression="Name">
<ItemTemplate>
<asp:LinkButton ID="lbName" runat="server"><%# DataBinder.Eval (Container, "DataItem.Name") %></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>


единственно что надо не забывать про датасурс гридвью, плюс есть бок, что биндинг происходит каждый раз...
...
Рейтинг: 0 / 0
ajax+gridview+linkbutton
    #34143566
orange_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, albion, Вы писали:

A>на updatepanel помещаю gridview, одну из колонок которого делаю TemplateField c LinkButton.

A>Не могу обработать событие нажатия на LinkButton, ни OnClick ни RowCommand не срабатывают.

A>При нажатии на кнопку GridView вообще пропадает. Чувствую чего то я недопонимаю, так как довольно недавно сталкнулся с ASP.Net.

Приведи код (.aspx.cs) и сам html-код.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ajax+gridview+linkbutton
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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