如函数名SelectedIndexChanged,当你选择DataGrid的行变化时就触发了这个事件,在函数里写你要执行的动作就可以了。最常用的是在DataGrid里添加“编辑”功能,点不同记录前的编辑连接,就会触发SelectedIndexChanged

解决方案 »

  1.   

    谢谢shanzi_21(坚韧的扇子)兄,但我希望的是在点击DataGrid中的任何不同于当前行的行中的任何一列时,就可以触发一个事件,如何做?
      

  2.   

    绑定模板列,在其中控件的事件中
    手动触发SelectedIndexChanged
      

  3.   

    这我倒没用过,可以把列设置为连接,不过就跑到另一页了,可以在pageload里写动作,如果只是当页的得想想:P
      

  4.   

    请访问网址
    http://www.hexiesoft.net/hexiesoft/Default.aspx,用户名/密码:guest/guest请探讨一下右边Frame如何响应左边Frame中数据表格行的变化(指的是从一行变到另一行时右边内容信息发生变化)?
      

  5.   

    DataGrid自定义超级连接列,不是用属性生成器,用下面方法:(注:ckd_id='+ckd_id+'是传给页面的参数)
    string sqlStr="SELECT '<a href=\"page_youwant_invoke.aspx?ckd_id='+ckd_id+'\" target=\"_blank\">字段</a>' as 字段汉字名 
    ,...";
    this.MyDataGrid.DataSource=dbtbl(sqlStr,"");
    this.MyDataGrid.DataBind();public DataView dbtbl(string commstr,string v_soft)//执行查询语句,返回dataview填充datagrid内容,v_soft参数是指定按某个字段排序,可以为空
    {
    SqlConnection myconn;
    myconn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["MM_CONNECTION_STRING_conn"]);
    SqlDataAdapter myCommand=new SqlDataAdapter(commstr,myconn);
    myconn.Open();
    DataTable dbtbl=new DataTable ();
    myCommand.Fill (dbtbl);//error found nearby XS_xsdID 
    DataView dbview= dbtbl.DefaultView ;
    dbview.Sort =v_soft;
    myconn.Close ();
    return dbview;
    }
    在page_youwant_invoke.aspx页里显示明细
    private void Page_Load(object sender, System.EventArgs e)
    {

    // 在此处放置用户代码以初始化页面
    //this.Response.Write(this.Request.QueryString["ckd_id"]);//从上页传来的参数
    string sqlStr="SELECT phd_id as  出库单号 ,(SELECT storageName FROM storage WHERE storage.storageCode = dbo.kcda_phdda.storageCode) AS 出货仓库, mtime AS 制表时间, ck_man AS 制表人,sh_man AS 送货人, bz AS 备注 FROM dbo.kcda_phdda   ";
    sqlStr=sqlStr + "Where phd_id='"+this.Request.QueryString["phd_id"]+"'";
    this.DataGrid1.DataSource=this.a_function.dbtbl(sqlStr,"");
    this.DataGrid1.DataBind();
    sqlStr="SELECT hh_id 货物代码 , number as 数量,retailprice as 单价 ,bz as 备注  FROM kcda_phddamx ";
    sqlStr=sqlStr + "Where phd_id='"+this.Request.QueryString["phd_id"]+"' order by hh_id ";
    //Response.Write(sqlStr);
    this.myDataGrid.DataSource=this.a_function.dbtbl(sqlStr,"");
    this.myDataGrid.DataBind() ; }