显示一切正常,就是没有捕捉得到它的事件?各位大虾帮帮忙,在此先谢了……
代码如下:
public void CreateGridColumn(DataGrid OperationDataGrid)
{
   ButtonColumn NewButCol = new ButtonColumn() ;
   NewButCol.Text = "编辑" ;
   NewButCol.HeaderText = "操作" ;
   NewButCol.CommandName = "Edit" ;
   NewButCol.ButtonType = ButtonColumnType.LinkButton ;
   NewButCol.Visible = true ;
   OperationDataGrid.Columns.Add(NewButCol) ;
}private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
   TextBox1.Text = "已响应" ; //没有执行到此
}

解决方案 »

  1.   

    private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
     ...
    }private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    ...
    }
      

  2.   

    在private void InitializeComponent(){   }
    中追加
    this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);
      

  3.   

    try to re-create the column in LoadViewState, seehttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_vstechart/html/vbtchTopQuestionsAboutASPNETDataGridServerControl.asp
      

  4.   

    to  justin_chang(用.NET淘金 !!)  在private void InitializeComponent() 中已经自动追加this.DataGrid1.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGrid1_ItemCommand);我再加一次也是没有用的,哎……,不会真的实理不了吧,那不太可能的啊
      

  5.   

    如果是动态创建,是不是还有一个AutoPost = true的属性需要加上?另外如果是动态创建确实需要在private void InitializeComponent() 中加上事件响应代码,如果你的代码自动加上了,那就不是动态创建的吧?
      

  6.   

    to chinagy(会员GY) 
       DataGrid 不是动态建的,它的把有列是态动建的,
       this.DataGrid1.ItemCommand += new 
       System.Web.UI.WebControls.DataGridCommandEventHandler (this.DataGrid1_ItemCommand);
       应该是 DataGrid 的事件吧,不是它列的事件吧! AutoPost = true 我没找到是哪个带有,
       DataGrid 好象没有带,ButtonColumn 列好象也没有带。
      

  7.   

    因为在不同的类型下显示,有不同的显示内容,所以DataGrid 显示的列也是不一样的
    所以只能动态创建列。比如
    在商品中,如果是查水果: 显示:品名,产地,品质
                      家电: 显示:品名,厂家,规格,型号
                               .
                               .
                               .
      

  8.   

    在设计界面看看DataGrid1的事件属性中,ItemCommand是否已设置,如果设置了,看看它连接的对不对?
      

  9.   

    连接是对的,我在同一个DataGrid 中,把动态创建去掉后,一切都是正常的……
      

  10.   

    /// </summary>
    private void BindData()
    {
    try
    {
    this.tr_blink.Visible = true;
    this.tr_detail.Visible = false; DataTable detailInfo = null; // Not Found in Sessoin 
    // We research the result
    if( this.Session["dsp_EnqTransFares_Head"] == null || this.Session["dsp_EnqTransFares_Detail"] == null )
    {
    // First intialize the page
    if( this.hid_SelectValue.Value == string.Empty )
    {
    return;
    }
    else
    {
    EnqTransFaresDB  fareDB = new EnqTransFaresDB( this.UserInfo.LangCode );
    detailInfo = fareDB.GetFareInfo( this.hid_SelectValue.Value , this.UserInfo.CompCode , DateTime.Parse(hid_EffiveDate.Value) );

    this.Session["dsp_EnqTransFares_Detail"] = detailInfo;
    }
    }
    else
    {
    detailInfo = (DataTable)this.Session["dsp_EnqTransFares_Detail"];
    } detailInfo.DefaultView.Sort = this.hid_SortField.Value + this.hid_SortType.Value;
    DataView detailView = detailInfo.DefaultView; this.dg_FareHead.DataSource = detailView;
    this.dg_FareHead.DataBind(); // Build DataGrid Dynamically
    // Remove All existed Columns
    while( this.dg_FareDetail.Columns.Count != 0 )
    {
    this.dg_FareDetail.Columns.RemoveAt(0);
    } // Add columns according to the dateSource
    // start from NO.1 , skip the first column (Destination)
    for( int i = 1 ; i < detailInfo.Columns.Count ; i ++ )
    {
    BoundColumn column = new BoundColumn();// TextBox txtbox = new TextBox();
    // TemplateColumn tem = new TemplateColumn();
    // tem.ItemTemplate.InstantiateIn(txtbox ); column.DataField = detailInfo.Columns[i].ColumnName;
    column.HeaderText = detailInfo.Columns[i].ColumnName;
    column.SortExpression = detailInfo.Columns[i].ColumnName;
    column.DataFormatString = "{0:n2}"; column.HeaderStyle.Wrap = false;
    column.HeaderStyle.Font.Underline = true;
    column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; dg_FareDetail.Columns.Add(column);
    } dg_FareDetail.DataSource = detailInfo;
    dg_FareDetail.DataBind(); // Reset DataGrid Color
    foreach( DataGridItem dgi in dg_FareDetail.Items )
    {
    for( int i = 0 ; i < dgi.Cells.Count ; i ++ )
    {
    // start from NO.1 , skip the first column (Destination)
    if( detailView[dgi.ItemIndex][i+1].ToString() == string.Empty )
    {
    // Using Grey Color
    dgi.Cells[i].BackColor = Color.FromArgb(221,221,221);
    }
    }
    } this.tr_blink.Visible = false;
    this.tr_detail.Visible = true;
    }
    catch( ApplicationException ex )
    {
    ComLogOutput.WriteLogFile(ex);
    this.lbl_Err.Text = ex.Message;
    }
    catch( Exception ex )
    {
    ComLogOutput.WriteLogFile(ex);
    }
    }
      

  11.   

    to  silverseven7()兄: 你的代码与我的问题,好象关系不大吧……
      

  12.   

    是不是BUG?
    我做WEB的时候常常有一些不响应事件的按钮,在编辑模式下双击它后转到代码,再编译就能通过.在两台电脑上都过这种事,大家有没有这种情况?
      

  13.   

    InitializeComponent中
    this.DataGridPage.EditCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.DataGridPage_EditCommand);
      

  14.   

    哈哈,我的这个问题解决了,你试试我的方法:把cs页里ItemCommand的函数删干净(先剪切到记事本上吧),把
    this.dgBoards.ItemCommand += new System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgBoards_ItemCommand);
    也删了
    然后回到aspx页,选中DataGrid,在属性框里找到ItemCommand,双击右边空白处的单元格,会自动添加ItemCommand事件,然后重新写代码.
      

  15.   

    还是不行的,不理它了,我用别的方法解决了
    我用一静态列来做操作列,当要动态生成新列时要清除DataGrid 的列时,
    就只清除其它列,不清除静态列,这样静态列它会一直保留着,响应事件也没有改变。
    这是没有办法中的办法,有空再去研究用动态列做操作列。
      

  16.   

    奇了
    ================================================================
    此帖通过csdn小助手回复。
        CSDN小助手是使用vb.net编写的CSDN论坛脱机“外挂”,它能够在
    脱离IE的情况下使用Csdn论坛。程序只加载最核心的数据,所以显示更
    快,产生的流量更小。    下载地址:http://qqwwee.com/csdn.rar
    ================================================================
      

  17.   

    先搞清楚DataGrid中button的工作原理.
      

  18.   

    给静态DataGrid动态添加列的问题
    http://blog.joycode.com/saucer/archive/2005/08/03/61488.aspx
      

  19.   

    TO saucer(思归)兄,你教训的是,不过还是非常感谢你。
          昨天不是没有看,只是时间比较紧,没有看完……
          所以为了应急,先用了另一种方法,呵呵……
          再次表示感谢……