在DataGrid中用的模板列,里面绑定了数据,我在代码页中写如下语句:
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string _num = e.Item.Cells[1].Text;
Response.Redirect("tb.aspx?title="+_num+"&btname="+_btname+"&btcn="+_btcn+"&state="+_state);
}
运行时提示:指定的参数已超出有效值的范围。参数名: index
高亮度显示此语句:string _num = e.Item.Cells[1].Text;
DataGrid中有一列的数据是LinkButton型的,我想要的结果是在单击LinkButton时获取此LinkButton的Text,例如单击"我的图书"按钮,获取"我的图书"这个值,请问怎么样才能做到。

解决方案 »

  1.   

    string _num = (LinkButton)e.Item.Cells[1].FindControl("LinkButton1").Text;
      

  2.   

    上面错了:
    string _num = (LinkButton)e.Item.FindControl("LinkButton1").Text;
      

  3.   

    string name=(LinkButton)e.Item.Cells[e.Item.ItemIndex].FindControl("LinkButton1").text;
      

  4.   

    不行呀,它提示:“System.Web.UI.Control”并不包含对“text”的定义
    而且FindControl("LinkButton1")中的"LinkButton1"代表什么??
      

  5.   

    是Text吧,FindControl("LinkButton1")代表在模板列中取id为LinkButton1的LinkButton
      

  6.   

    大小写是要区分,可是FindControl("LinkButton1")后面根本没有Text,怎么办呢?
      

  7.   


    string _num = ((LinkButton)e.Item.FindControl("LinkButton1")).Text;或:
    LinkButton lbt1 = ((LinkButton)e.Item.FindControl("LinkButton1");
    string _num = lbt1.Text;
      

  8.   

    LinkButton lbt1 = (LinkButton)e.Item.FindControl("LinkButton1");
    string _num = lbt1.Text;
      

  9.   

    string _num = ((LinkButton)e.Item.FindControl("LinkButton1")).Text;
    我在DataGrid中按钮的ID为usertitle,那么这个"LinkButton1"就是usertitle吧,但是我运行的结果是什么都没显示,没有获取到我所单击按钮的值。
    ???????????????