Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> GridView режим редактирования 
:(
    Опции темы
cupper
Дата 5.10.2010, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Есть проект, нужно было добавить возможность редактировать выводимые через грид значения.
Ну по msdn добавил кнопки, события, определил обработчики. Итог в редим редактирования не входит. 
хмм...
Посмотрел на соседнюю страницу через Web там был переход к редактированию, лезу в код, вижу что также объявлены кнопки, НО
события OnRowEditing, OnRowCanceling нету, нету и их обработчиков. Объявлены только OnRowCommand, onRowUpdating, OnRowDataBound. после тщательного просмотра кода, дебага, я так и непонял как/почему данные грид переходит в режим редактирования по клацанию кнопки,  без обработчиков, а мой ни с обработчиками ни без них (вылазит исключение что не объявлен обработчик для OnRowEditing) не фурычит... 
Вот даже и незнаю что за хитрости таит в себе грид и где бы про сею магию почитать, поэтому прошу помощи у знающих.
PM MAIL   Вверх
Springtime
Дата 5.10.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

Репутация: нет
Всего: 2



AJAX?
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
cupper
Дата 5.10.2010, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



не слова в коде про ajax я не увидел, самый обычный грид
Код

<asp:GridView id="gvDictionaryType" runat="server" Width="100%" BorderWidth="1" OnRowDeleting="gvDictionaryType_RowDeleting" 
__designer:wfdid="w1" OnRowDeleted="gvDictionaryType_RowDeleted" HorizontalAlign="Center" BorderColor="#132846" CellPadding="2"
 CellSpacing="0" DataSourceID="odsDictionaryType" PageSize="20" AutoGenerateColumns="False" DataKeyNames="ID" AllowPaging="True"
 PagerStyle-HorizontalAlign="center" OnRowDataBound="gvDictionaryType_RowDataBound"
 OnPageIndexChanging="gvDictionaryType_PageIndexChanging" OnPreRender="gvDictionaryType_PreRender">
                <HeaderStyle CssClass="TableHeaderStyle" />
                <RowStyle CssClass="TableRowStyle" />
                <AlternatingRowStyle CssClass="TableAlternatingRowStyle" />
                <Columns>
                    <asp:TemplateField>                        
                        <ItemTemplate>
                            <asp:CheckBox ID="cSelect" runat="server"/>
                        </ItemTemplate>
                        <ItemStyle CssClass="TableItemStyle" Width="20"/>
                    </asp:TemplateField>
                    <asp:BoundField DataField="TypeName" HeaderText="Название словаря" >
                        <ItemStyle CssClass="TableItemStyle" HorizontalAlign="Left" />
                        <HeaderStyle CssClass="TableHeaderStyle" />
                    </asp:BoundField>
                    <asp:CommandField ShowEditButton="true" ButtonType="Image" EditImageUrl="~/Images/edit.gif" CausesValidation="false" 
                        CancelImageUrl="~/Images/cancel_small.gif" UpdateImageUrl="~/Images/update.gif" 
                        EditText="Редактировать" CancelText="Отмена" UpdateText="Обновить">
                        <ItemStyle CssClass="TableItemStyle" HorizontalAlign="Center" Height="24px" Width="24px" />
                        <HeaderStyle CssClass="TableHeaderStyle" />
                    </asp:CommandField>
                    <asp:CommandField ShowDeleteButton="true" DeleteText="Удалить" ButtonType="Image" DeleteImageUrl="~/Images/del.gif" CausesValidation="false">
                        <ItemStyle CssClass="TableItemStyle" HorizontalAlign="Center" Height="24px" Width="24px" />
                        <HeaderStyle CssClass="TableHeaderStyle" />
                    </asp:CommandField>
                </Columns>
            </asp:GridView>

самый обычные обработчики
Код

    protected void gvDictionaryType_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
            if (e.Row.Cells[e.Row.Cells.Count - 1].Controls.Count > 0)
            {
                ((ImageButton)e.Row.Cells[e.Row.Cells.Count - 1].Controls[0]).Attributes.Add("onclick", Resources.FormMessage.OnDeleteButton);
                ((CheckBox)e.Row.Cells[0].Controls[1]).Attributes.Add("onclick", "javascript:changeVisible(this);");
            } 
    }

    protected void gvDictionaryType_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        gvDictionaryType.PageIndex = e.NewPageIndex;
    }
...

Есть страница master, есть страницы *aspx который етот мастер наследуют, в мастере обычная табличные разметка сайта. Я было думал что может это такая фишка грида что если не определять onRowEditing он чтонить стандартное применяет и все значения например через тексбоксы отображает как строки. Ну так именно на той странице где нужно без OnRowEditiing не вкакую, да и с ним не особо разницы... Я вот как бы немного опечален даже, что немогу понять такой простой истины. В интернете любые примеры только с OnRowEditing, ну как я уже понял в инете по поводу asp.net самые банальные вещи только показываются, а в проектах используются все чего нет в интете ))

Добавлено через 10 минут и 18 секунд
переход в режим редактирование по средству OnRowEditing все же сделал, бонально дописав в конце(как везде и было написано) строку
Код

gv.DataSource = ...
gv.DataBind();

но собстно я так ничего и не понял
PM MAIL   Вверх
Springtime
Дата 5.10.2010, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

Репутация: нет
Всего: 2



может это:

Код

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "Delete":
this.GridView1.DeleteRow(Convert.ToInt32(e.Command Argument));
break;
}
}

--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
cupper
Дата 5.10.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 525
Регистрация: 29.11.2006

Репутация: нет
Всего: 1



Не совсем. Да, OnRowCommand там объявлен, и есть везде его обработчики, но они обрабатывают только специфические кнопки (которые добавлялись как например
Код

<asp:ButtonField ButtonType="Button" CommandName="FieldTable" >

я тщательно их все продебужил даты явно убедиться что не в одну из веток свича при клацании на edit не заходит.
Тут видимо всетаки наверно фишка всего проекта, что мол оно так хитроповернуто (или специально переделано) что оно вот так может работать...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0428 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.