Re: Загадочный глюк DataGrid-a с EditCommandColumn
От: Tonik_ru  
Дата: 26.05.05 11:40
Оценка:
Здравствуйте, Аноним, Вы писали:

А> Получился загадочный глюк 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>
А>



а данные в DataGrid пихаются в PageLoad?
вот тут и косяк, пихай в PageInit, тогда все OK будет
если интересно почему так происходит, смотри Trace страницы после PostBack'a
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.