Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / опять GridView / 4 сообщений из 4, страница 1 из 1
29.07.2015, 09:06
    #39018251
mr Red
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять GridView
Есть GridView, которая наполняется колонками и данными в коде. И фильтр, который тоже наполняется контролами в коде.

<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="Sm1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="Up1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:PlaceHolder ID="FilterPlaceHolder" runat="server"></asp:PlaceHolder>
<asp:GridView ID="mainGr" runat="server" AutoGenerateColumns="False" ShowFooter="true"
AllowSorting="true" OnRowUpdating="OnRowUpdate" OnRowEditing="OnRowEdit" OnRowCancelingEdit="OnRowCancelEdit"
OnRowDeleting="OnRowDelete" OnRowDataBound="OnRowBound" OnSorted="OnSorted" OnSorting="OnSorting">
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>

protected override void CreateChildControls()
{
base.CreateChildControls();
if (!Page.IsPostBack)
{
AddStaticFields();
}
AddFilter();
AddTemplateFields();
BindMainGrid();
}

В футере контролы для добавления новых строк, которые создаются через FooterTemplate.
+ В колонке CommandField, в футере добавлена кнопка добавления

protected void OnRowBound(object sender, GridViewRowEventArgs e)
{
base.OnDataBinding(e);
if (e.Row.RowType == DataControlRowType.Footer)
{
ImageButton imgBtn = new ImageButton() { ImageUrl = "~/img/insert.png", ID = "footerInsertBtn", ImageAlign = ImageAlign.Middle };
imgBtn.Click += new ImageClickEventHandler(OnInsertInFooter);
e.Row.Cells[0].Controls.Add(imgBtn);
}
}

Собственно проблема - когда фильтр не установлен, все работает отлично.
Но когда я устанавливаю фильтр, событие OnInsertInFooter вообще не срабатывает.

В чем может быть проблема?
...
Рейтинг: 0 / 0
29.07.2015, 09:13
    #39018254
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять GridView
...
Рейтинг: 0 / 0
29.07.2015, 09:20
    #39018264
mr Red
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять GridView
Вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="Sm1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="Up1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
            <ContentTemplate>
                <asp:PlaceHolder ID="FilterPlaceHolder" runat="server"></asp:PlaceHolder>
                <asp:GridView ID="mainGr" runat="server" AutoGenerateColumns="False" ShowFooter="true"
                    AllowSorting="true" OnRowUpdating="OnRowUpdate" OnRowEditing="OnRowEdit" OnRowCancelingEdit="OnRowCancelEdit"
                    OnRowDeleting="OnRowDelete" OnRowDataBound="OnRowBound" OnSorted="OnSorted" OnSorting="OnSorting">
                </asp:GridView>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
    </form>
</body>



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
protected override void CreateChildControls()
        {
            base.CreateChildControls();
            if (!Page.IsPostBack)
            {
                AddStaticFields();
            }
            AddFilter();
            AddTemplateFields();
            BindMainGrid();
        }


protected void OnRowBound(object sender, GridViewRowEventArgs e)
        {
            base.OnDataBinding(e);
            if (e.Row.RowType == DataControlRowType.Footer)
            {
                ImageButton imgBtn = new ImageButton() { ImageUrl = "~/img/insert.png", ID = "footerInsertBtn", ImageAlign = ImageAlign.Middle };
                imgBtn.Click += new ImageClickEventHandler(OnInsertInFooter);
                e.Row.Cells[0].Controls.Add(imgBtn);
            }
        }
...
Рейтинг: 0 / 0
29.07.2015, 11:04
    #39018394
mr Red
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
опять GridView
В общем проблема решена.
Если перенести создание кнопки в футере в OnRowCreate, все работает.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / опять GridView / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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