Здравствуйте, Аноним, Вы писали:
А> Получился загадочный глюк 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