powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как иницировать асинхронный постбэк из GridView
16 сообщений из 16, страница 1 из 1
Как иницировать асинхронный постбэк из GridView
    #37969176
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На форме есть две UpdatePanel (UpdatePanel1 и UpdatePanel2). В каждой имеется по GridView. В GridView1 имеется ImageButton который должен генерировать событие OnRowCommand для GridView1. В UpdatePanel2 настроен триггер на событие OnRowCommand GridView1.
Далее когда GridView1 загрузился, нажимаем на ImageButton и .... ничего не происходит. События OnRowCommand не возникает, также не возникает никакого PostBack.
Пробовал в Page_Load`е зарегистрировать GridView1 как объект асинхронного постбэка. результат нулевой.

Помогите плиз.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37969337
Primus inter pares
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
thunder2В UpdatePanel2 настроен триггер на событие OnRowCommand GridView1.
Почему не в UpdatePanel1?
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37969390
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вообще UpdatePanel? :)

13166203 thunder2Если бы Вы понимали как работает UpdatePanel не предлагали бы эту бяку.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970380
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAПочему вообще UpdatePanel? :)

13166203 thunder2Если бы Вы понимали как работает UpdatePanel не предлагали бы эту бяку.
Да потому что в Webforms`ах ничего другого подходящего нет. А проект надо заканчивать. Потому пусть хоть с граблями, но пусть уж хоть как-нибудь работает. Тормозит конечно, а после на MVC перейду. В баню эти Webforms !
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970382
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Primus inter paresthunder2В UpdatePanel2 настроен триггер на событие OnRowCommand GridView1.
Почему не в UpdatePanel1?
Мне надо обновлять по условию UpdatePanel2, при этом UpdatePanel1 пусть остается без изменения. Вроде правильно делаю.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970431
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2,

как то так

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                          DataSourceID="ObjectDataSource1" onrowcommand="GridView1_RowCommand">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
                    <asp:ButtonField ButtonType="Button" CommandName="Select" Text="Button" />
                    <asp:BoundField />
                </Columns>
            </asp:GridView>
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
                                  SelectMethod="GetUsers" TypeName="WebApplication3.Data"></asp:ObjectDataSource>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:GridView ID="GridView2" runat="server"  AutoGenerateColumns="True">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                    <asp:BoundField DataField="UserId" HeaderText="UserId" 
                                    SortExpression="UserId" />
                    <asp:BoundField DataField="Street" HeaderText="Street" 
                                    SortExpression="Street" />
                </Columns>
            </asp:GridView>
        </ContentTemplate>
    </asp:UpdatePanel>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
  public class Adress {
        public int Id { get; set; }
        public int UserId { get; set; }
        public string Street { get; set; }
    }

    public class User {
        public User() {
            Date = DateTime.Now;
        }

        public int Id { get; set; }
        public string Name { get; set; }
        public bool IsChecked { get; set; }
        public DateTime Date { get; set; }
    }

    public class Data {
        public IEnumerable<User> GetUsers() {
            return new List<User> {
                                      new User {Id = 1, Name = "jeka", IsChecked = true},
                                      new User {Id = 2, Name = "Alex", IsChecked = false},
                                      new User {Id = 3, Name = "Serg", IsChecked = true},
                                      new User {Id = 4, Name = "Anna", IsChecked = false},
                                  };
        }

        public IEnumerable<Adress> GetAdress() {
            return new List<Adress> {
                                        new Adress {Id = 1, UserId = 1, Street = "Lenina"},
                                        new Adress {Id = 2, UserId = 2, Street = "Pushkina"},
                                        new Adress {Id = 3, UserId = 3, Street = "Lermontova"},
                                        new Adress {Id = 4, UserId = 1, Street = "Tolstogo"},
                                        new Adress {Id = 5, UserId = 2, Street = "Nekrasova"}
                                    };
        }
    }




Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) {

                var repo = new Data();
                int index = Convert.ToInt32(e.CommandArgument);
                GridViewRow row = GridView1.Rows[index];
                int Id = Convert.ToInt32(row.Cells[0].Text);
                var adr = repo.GetAdress().Where(p => p.UserId == Id);
                GridView2.DataSource = adr;
                GridView2.DataBind();
                UpdatePanel2.Update();            
        }
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970436
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deza,

так там не большая ошибка, счас исправлю:)
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970441
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильная разметка

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
         
        <ContentTemplate>
            <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                          DataSourceID="ObjectDataSource1" onrowcommand="GridView1_RowCommand">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                    <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                    <asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" />
                    <asp:ButtonField ButtonType="Button" CommandName="Select" Text="Button" />
                    <asp:BoundField />
                </Columns>
            </asp:GridView>
            <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
                                  SelectMethod="GetUsers" TypeName="WebApplication3.Data"></asp:ObjectDataSource>
        </ContentTemplate>
        
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:GridView ID="GridView2" runat="server"  AutoGenerateColumns="True">
                <Columns>
                    <asp:BoundField DataField="Id" HeaderText="Id" SortExpression="Id" />
                    <asp:BoundField DataField="UserId" HeaderText="UserId" 
                                    SortExpression="UserId" />
                    <asp:BoundField DataField="Street" HeaderText="Street" 
                                    SortExpression="Street" />
                </Columns>
            </asp:GridView>
        </ContentTemplate>
    </asp:UpdatePanel>
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970444
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970445
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
protected void Page_Load(object sender, EventArgs e) {
            Label1.Text = DateTime.Now.ToString();
            Label2.Text = DateTime.Now.ToString();


        }
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37970568
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2skyANAПочему вообще UpdatePanel? :)

13166203 пропущено...

Да потому что в Webforms`ах ничего другого подходящего нет. А проект надо заканчивать. Потому пусть хоть с граблями, но пусть уж хоть как-нибудь работает. Тормозит конечно, а после на MVC перейду. В баню эти Webforms !Думаю свойство UpdateMode = UpdatePanelUpdateMode.Conditional спасут отца русской демократии и избавит от лишних тормозов :)
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37971530
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deza,

Спасибо за отклик. Вечером покурю.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37971541
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAthunder2пропущено...

Да потому что в Webforms`ах ничего другого подходящего нет. А проект надо заканчивать. Потому пусть хоть с граблями, но пусть уж хоть как-нибудь работает. Тормозит конечно, а после на MVC перейду. В баню эти Webforms !Думаю свойство UpdateMode = UpdatePanelUpdateMode.Conditional спасут отца русской демократии и избавит от лишних тормозов :)
Да это было сделано с самого начала :) Не надо меня считать таким уже далёким... абыдна !
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37972094
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Deza,

Настал вечер, покурил... Постбэк всё-таки происходит и даже асинхронный. Не возникает событие OnRowCommand у GridView1. Не могу понять почему.
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37972117
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
thunder2Deza,

Настал вечер, покурил... Постбэк всё-таки происходит и даже асинхронный. Не возникает событие OnRowCommand у GridView1. Не могу понять почему.

покажи разметку
...
Рейтинг: 0 / 0
Как иницировать асинхронный постбэк из GridView
    #37972141
thunder2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dezathunder2Deza,

Настал вечер, покурил... Постбэк всё-таки происходит и даже асинхронный. Не возникает событие OnRowCommand у GridView1. Не могу понять почему.

покажи разметку

Похоже понял почему. Надо использовать ButtonField ButtonType="Image", вместо ImageButton.
щас постбэк возникает, и возникает OnRowCommand. Если будут дальше траблы (но уже вряд ли) сообщу.
На это решение натолкнул вот этот пост не происходит событие OnRowCommand
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как иницировать асинхронный постбэк из GridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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