有一个DataGrid控件,其中一列是按扭,我要得到DataGrid某列的值
我可以在OnItemCommand这样写e.item.cell(0).Text
但如果某一列是联接列的话(<asp:HyperLinkColumn />),要怎么样得到该列某一行的值?

解决方案 »

  1.   

    我在面对这种问题是一边采取模版列的方式,放一个linkbutton按钮进去把它的commandname=
    "selectname",然后绑定好。在onitemcommand事件中找到这个按钮取出这个按钮的text属性,然后放到一个变量如果是跳转页面的话就放到一个session中去,这时候用response跳转到那个页面,就可以了,虽然办法有点苯但是有效,同时这个方法也可以用在不跳转的页面上去
    下面是一部分代码:
    private void dgFormula_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    try
    {
    if(e.CommandName.ToString()=="Name")
    {
    Label lb=(Label)e.Item.FindControl("lbId");
    Session["FormulaID"]=Convert.ToInt32(lb.Text);
    Session["ReportID"]=Convert.ToInt32(this.comboReportName.DataValue);
    Response.Redirect("AuditingFormulaDefine.aspx");
    }
    }
    catch(Exception exp)
    {
    message.Text=exp.Message;
    }
    }
      

  2.   

    还有一种解决办法就是,默认的超链接列的url中添加一个动态从数据库中取出的值例如:
    Http://www.sina.com.cn?id=name然后再要跳转的页面中采用request["name"]就可以取出来,当然
    参数最好要从数据库中绑定好,这个传值办法很原始仅供参考
      

  3.   

    (悠悠稻草人)好勤肯呀。学习ing!!!!