在DataGrid中有一个模板列,中间放的是LinkButton在前台的数据绑定代码是这样的:   <asp:TemplateColumn HeaderText="姓名">
      <ItemTemplate>
<asp:LinkButton id="lnkEmployeeName" runat="server" EnableViewState="False" 
                 CommandName="lnkEmployeeName" ToolTip="点击进入评审页面">    <%# DataBinder.Eval(Container.DataItem,"name")%> </asp:LinkButton>
      </ItemTemplate>
   </asp:TemplateColumn>我希望如果点击的是“查询”按钮,跳转到这个DataGrid所在的页面以后,ToolTip值变成:
    “点击进入查询页面”我在后台的DataGrid_ItemDataBound事件中写了
     CType(e.Item.Cells(3).Controls(0), LinkButton).ToolTip = "点击进入查询页面"
但是老是提示“类型转换错误”请高人指点应该怎样做才正确?为什么我的做法错在什么地方。
谢谢!

解决方案 »

  1.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {               
        if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
        {   
            LinkButton linkbutton = (LinkButton)e.Item.FindControl("lnkEmployeeName");
            string strButtonName = ((LinkButton)sender).Text;
            if (strButtonName == "查询")
            {
                linkbutton.ToolTip = "点击进入查询页面";
            }
        }
    }
      

  2.   

    楼上正解,用findControl比直接用索引号好
      

  3.   

    swordragon(古道热肠)  的方法可以。为什么我的做法不行啊?望解
      

  4.   

    Controls(0),有問題,你debug進去看看你這列不一定那個控件是0.