Загадочный глюк DataGrid-a с EditCommandColumn
От: Аноним  
Дата: 26.05.05 10:49
Оценка:
Получился загадочный глюк DataGrid-a с EditCommandColumn. Один вариант срабатывает, второй — ни_в_какую. Может подскажете в чем причина глюка? или в какую сторону "копать"?

В обработчике
        override protected void OnInit(EventArgs e)
        {

            InitializeComponent();
            base.OnInit(e);
        }

        private void InitializeComponent()
        {    
            
            this.listNewForm2.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(listNewForm2_EditCommand);
            this.Load += new System.EventHandler(this.Page_Load);

        }

мы обработку события EditCommand привязываем к функции listNewForm2_EditCommand

        private void listNewForm2_EditCommand(object source, DataGridCommandEventArgs e)
        {
            listNewForm2.EditItemIndex = e.Item.ItemIndex;
            DataBindGrid();
        }


Так вот глюк в чем — в первом варианте событие ПРОИСХОДИТ, во втором — нет!!!


Вариант 1:

            <asp:DataGrid ID="listNewForm2" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:ButtonColumn ButtonType="PushButton" CommandName="Delete" Text="Удалить" />
                    <asp:EditCommandColumn ButtonType=LinkButton UpdateText="Занести число" EditText="Редак.Порядок" CancelText="Отменить" />
                    <asp:BoundColumn DataField="orderID" HeaderText="Порядок на форме" />
                    <asp:BoundColumn DataField="razmerOnScreen" HeaderText="Размер на экране" ReadOnly="True" />
                </Columns>
            </asp:DataGrid>


Вариант 2:
если мы вместо ButtonType=LinkButton, ставим ButtonType="PushButton"
то событие EditCommand не происходит


            <asp:DataGrid ID="listNewForm2" runat="server" AutoGenerateColumns="False">
                <Columns>
                    <asp:ButtonColumn ButtonType="PushButton" CommandName="Delete" Text="Удалить" />
                    <asp:EditCommandColumn ButtonType="PushButton" UpdateText="Занести число" EditText="Редак.Порядок" CancelText="Отменить" />
                    <asp:BoundColumn DataField="orderID" HeaderText="Порядок на форме" />
                    <asp:BoundColumn DataField="razmerOnScreen" HeaderText="Размер на экране" ReadOnly="True" />
                </Columns>
            </asp:DataGrid>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.