我的问题和你一样啊
DETAILVIEW只有用了DATASOURCE这个控件才能自动生成编辑的代码,如果数据源是我们手动写的,就会发生楼主的情况,到底这个modechanging应该怎么样写,才能和自动生成的"编辑"产生的效果一样?

解决方案 »

  1.   

    protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {
        
            DetailsView1.ChangeMode(e.NewMode );
    //
    /*选择数据源并重新绑定
    //
            DetailsView1.DataSource = (new AuthorAccess.AuthorAccess()).GetAuthorByID((string)this.GridView1.SelectedValue);
    */  
          DetailsView1.DataBind();
            DetailsView1.Visible = true;
            
        }我的方法好用的话别忘记给分哦
      

  2.   

    protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {
        
            DetailsView1.ChangeMode(e.NewMode );
     
        }
      

  3.   

    那我点了Update 报ItemUpting没激发。
      

  4.   

      protected void DetailsView1_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {
            //判断模式
            if (e.NewMode == DetailsViewMode.Insert)
            {
                DetailsView1.ChangeMode(DetailsViewMode.Insert);
            }
            else if (e.NewMode == DetailsViewMode.Edit)
            {
                DetailsView1.ChangeMode(DetailsViewMode.Edit);        
            }
            else if (e.CancelingEdit)
            {
                //取消插入模式
                if (DetailsView1.CurrentMode == DetailsViewMode.Insert)
                {
                    DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);            
                }
                //取消编辑模式
                else if (DetailsView1.CurrentMode == DetailsViewMode.Edit)
                {
                    DetailsView1.ChangeMode(DetailsViewMode.ReadOnly);            
                }
            }
        }    protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e)
        {
            //判断单击那个按钮
            if (e.CommandName == "Edit")
            {
                Literal TxtMsg = new Literal();
                TxtMsg.Text = "<script>alert('进入编辑模式')</script>";
                Page.Controls.Add(TxtMsg);
            }
            else if (e.CommandName == "New")
            {
                Literal TxtMsg = new Literal();
                TxtMsg.Text = "<script>alert('插入新的一行')</script>";
                Page.Controls.Add(TxtMsg);
            }
        }
    我用了还可以。就是编辑的时候出现两次('进入编辑模式')和取消编辑时没有反应
      

  5.   

    用下面这个,,,
    DetailsView1.DataBind();
    很强悍,,,我刚试的