步骤
1、在aspx页面上添加了一个DataGrid控件
2、单击右键选择生成属性
3、选择按钮列,添加了编辑按钮
4、在属性页里选择闪电图标,双击editcommand,在cs文件中生成了datagrid1_editcommand事件
5、在pageload事件中写
if(!Page.IsPostback)
{
  this.DataGrid1.DataSource=数据源;
this.DataGrid1.DataBind();}
6、在datagrid1_editcommand事件中写
{
  this.DataGrid1.edititemindex = e.Item.ItemIndex;
  this.DataGrid1.DataSource=数据源;
this.DataGrid1.DataBind();}按F5运行,点编辑按钮,页面刷新了一下,原来的数据都没有了,跟踪了一下,根本就没有进datagrid1_editcommand事件,怎么回事?为什么在我去掉 if(!Page.IsPostback) 就可以了??????

解决方案 »

  1.   

    在datagrid里是否设置了
    OnEditCommand="datagrid1_editcommand"去掉if(!Page.IsPostback) 就可以 ,是因为点击编辑按钮,
    服务器端会自动加载该页面,又执行了pageload 里的数据绑定
      

  2.   

    this.dgdFolder.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgdFolder_EditCommand);这句话是有 的
      

  3.   

    给你一段范例,自己研究吧 ,是vb写的代码
     Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                If Not Page.IsPostBack Then
                    data_bind()
                   
                End If        End Sub

            Sub DataGrid_Edit(ByVal Sender As Object, ByVal E As DataGridCommandEventArgs)
                    DataGrid1.EditItemIndex = E.Item.ItemIndex
    data_bind()        End Sub
            
            sub data_bind()
            
              DataGrid1.DataSource=数据源
    DataGrid1.DataBind()
            end sub
            
            
            
     页面<asp:datagrid id="DataGrid1" runat="server" OnItemCommand="DataGrid_ItemCommand" AutoGenerateColumns="False"
    AllowPaging="False" ItemStyle-CssClass="CartListItem" FooterStyle-CssClass="cartlistfooter"
    HeaderStyle-CssClass="CartListHead" ShowFooter="True" Font-Size="8pt" Font-Name="Verdana"
    cellpadding="4" GridLines="Vertical" BorderColor="Black" Font-Names="Verdana" Width="100%"
     OnUpdateCommand="DataGrid_Update"
    OnCancelCommand="DataGrid_Cancel" OnEditCommand="DataGrid_Edit" > <Columns>

    <asp:TemplateColumn HeaderText="字段名称">
    <HeaderStyle HorizontalAlign="Center" Width="60%" VerticalAlign="Middle"></HeaderStyle>
    <ItemStyle HorizontalAlign="left"></ItemStyle>
    <ItemTemplate>

    </ItemTemplate>
    <edititemtemplate>

    </edititemtemplate>
    </asp:TemplateColumn>
    <asp:EditCommandColumn ButtonType="LinkButton" HeaderText="操作" UpdateText="保存" CancelText="取消" EditText="修改"
    ItemStyle-Font-Size="9" ItemStyle-Width="20%"></asp:EditCommandColumn>

    </Columns>
    <PagerStyle Font-Size="9pt" HorizontalAlign="Right" ForeColor="White" BackColor="#6B696B" Mode="NumericPages"></PagerStyle>
    </asp:datagrid>