例如在datagrid中的edit键的响应事件里有
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e) {
    this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
}但这句如果放在datagrid以外的button事件中,就运行不了了,因为那个e不同。
private void Button1_Click(object sender, System.EventArgs e) {
    this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
}请问有什么办法解决?

解决方案 »

  1.   

    给这个按钮定义一个commandname 
    然后在datagrid里面定义commandname事件
      

  2.   

    private void RepeaterLiuxiang_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    //定义子控件,定义按钮事件
    myButton=(Button)e.Item.FindControl("ButtonCheck");
    if(e.CommandName=="CommandNameBTn")
    {
    TextBox txt_cert_no;
    txt_cert_no=(TextBox)RepeaterLiuxiang.Items[0].FindControl("txt_cert_no");
    TextBox txt_apply_no;
    txt_apply_no=(TextBox)RepeaterLiuxiang.Items[0].FindControl("txt_apply_no"); DataSet Ds_bxCert_Detail=new DataSet();
    Ds_bxCert_Detail =CodeAbout.bxCert_Detail("bxCert",txt_cert_no.Text);
     
    //如果搜索到记录,就获取证书及路径
    if(CodeAbout.bxCert_Count("bxCert",txt_cert_no.Text)>0)
    {
    //Response.Write(Ds_bxCert_Detail.Tables["bxCert"].Rows[0][0].ToString());
    btn_edit.Enabled=true;
    Response.Write("<script>window.open(\"../tempcert/"+Ds_bxCert_Detail.Tables["bxCert"].Rows[0][1].ToString()+"\")</script>"); }
    else
    {
    opStatus("操作失败,未找到该证书!");
    }  
    }
    }
      

  3.   

    楼上的朋友,我试了你的代码,系统还是无法触发DataGrid1_ItemCommand的事件。因为问题有,我加的这个button1是放在DataGrid1以外的,但DataGrid1和button1都是放在同一个form里面的。所以,我觉得,从DataGrid1_ItemCommand名字可以知道,这个button的item应该在DataGrid以内。那么如何做?还有其他方法吗
      

  4.   

    怎么办,我的ASP似乎无法响应ItemCommand事件,ItemmBound事件就可以相应。怎么回事?