各位高手,小弟请教一个问题:
asp.net 页面中有个Gridview控件。其中有一列是利用Templatefield模板绑定了3个Linkbutton按钮,我现在要在CS后台代码中去改变3个Linkbutton的Enabled属性,请问我该怎么写,我的写法是
Linkbutton lbt = (LinkButton)Gridview1.TemplateControl.FindControl("Linkbutton1");
      lbt.Enabled = true;
但是会报未实例化的错误,我有调试过,lbt的到的是null值。请高手赐教!

解决方案 »

  1.   

    好像是Linkbutton lbt = Gridview1.row[i].cell[j].FindControl("Linkbutton1");
      

  2.   

    这样
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            foreach (GridViewRow  gvr in GridView1.Rows)
            {
                Linkbutton lbt = (LinkButton)gvr.FindControl("Linkbutton1");
                lbt.Enabled = true; 
            }
        }
      

  3.   

    Linkbutton lbtn = Gridview1.row[i].cell[j].FindControl("Linkbutton1") as Linkbutton ;
      

  4.   

    调试这里:
    Linkbutton lbtn = Gridview1.row[i].cell[j].FindControl("Linkbutton1") as Linkbutton ;
      

  5.   

    html代码
                <asp:TemplateField HeaderText="髡夔" ShowHeader="False">
                    <ItemTemplate>
                        <asp:LinkButton ID="lbtlook" runat="server" CausesValidation="False" 
                            CommandName="Select" Text="脤艘"></asp:LinkButton>
                        &nbsp;<asp:LinkButton ID="lbtupdate" runat="server" CausesValidation="False" 
                            CommandName="Edit" Text="晤憮"></asp:LinkButton>
                        &nbsp;<asp:LinkButton ID="lbtdelete" runat="server" CausesValidation="False" 
                            CommandName="Delete" Text="刉壺" OnClientClick="return confirm('斕隅猁刉壺鎘?');"></asp:LinkButton>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                            CommandName="Update" Text="脤艘"></asp:LinkButton>
                        &nbsp;<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                            CommandName="Cancel" Text="秏"></asp:LinkButton>
                    </EditItemTemplate>
                    <HeaderStyle HorizontalAlign="Center" Width="100px" VerticalAlign="Middle" />
                    <ItemStyle HorizontalAlign="Center" Width="100px" VerticalAlign="Middle" />
                </asp:TemplateField>cs代码            for (int f = 0; f < dt.Tables[0].Rows.Count; f++)
                {
                    string functid = dt.Tables[0].Rows[0][0].ToString().Trim();
                    switch (functid)
                    {
                        case "01":
                            imgmp1.Visible = true;
                            break;
                        case "02":
                            LinkButton lbt = (LinkButton)gvdate.TemplateControl.FindControl("lbtupdate");
                            lbt.Enabled=false; 
                            break;
                        case "03":
                            ImageMap1.Enabled = true;
                            LinkButton lbt1 = (LinkButton)gvdate.TemplateControl.FindControl("lbtdelete");
                            lbt1.Enabled = false;
                            break;
                        default:
                            break;                }
                }
      

  6.   


    for (int f = 0; f < dt.Tables[0].Rows.Count; f++)
            {
                string functid = dt.Tables[0].Rows[f][0].ToString().Trim();
                switch (functid)
                {
                    case "01":
                        imgmp1.Visible = true;
                        break;
                    case "02":
                        LinkButton lbt = (LinkButton)gvdate.Rows[f].Cells[1].FindControl("lbtupdate");//cell[1]這里的1改成你自己對應的
                        lbt.Enabled = false;
                        break;
                    case "03":
                        ImageMap1.Enabled = true;
                        LinkButton lbt1 = (LinkButton)gvdate.Rows[f].Cells[2].FindControl("lbtdelete");//cell[2]這里的2改成你自己對應的
                        lbt1.Enabled = false;
                        break;
                    default:
                        break;
                }
            }
      

  7.   


              for (int f = 0; f < dt.Tables[0].Rows.Count; f++) 
                { 
                    string functid = dt.Tables[0].Rows[0][0].ToString().Trim(); 
                    switch (functid) 
                    { 
                        case "01": 
                            imgmp1.Visible = true; 
                            break; 
                        case "02": 
                        foreach(GridViewRow row in gvdate.Rows)
                        {
                            LinkButton lbt = (LinkButton)row.FindControl("lbtupdate"); 
                         
                            lbt.Enabled=false;
                         }
                            break; 
                        case "03": 
                            ImageMap1.Enabled = true; 
                       foreach(GridViewRow row in gvdate.Rows)
                        {
                             LinkButton lbt1 = (LinkButton)row.FindControl("lbtdelete"); 
                            lbt1.Enabled = false; 
                         }
                            break; 
                        default: 
                            break;                 } 
                }
      

  8.   

    for (int f = 0; f < dt.Tables[0].Rows.Count; f++)
            {
                string functid = dt.Tables[0].Rows[f][0].ToString().Trim();
                switch (functid)
                {
                    case "01":
                        imgmp1.Visible = true;
                        break;
                    case "02":
                        LinkButton lbt = (LinkButton)gvdate.Rows[f].Cells[1].FindControl("lbtupdate");//cell[1]這里的1改成你自己對應的列
                        lbt.Enabled = false;
                        break;
                    case "03":
                        ImageMap1.Enabled = true;
                        LinkButton lbt1 = (LinkButton)gvdate.Rows[f].Cells[1].FindControl("lbtdelete");//cell[1]這里的2改成你自己對應的列
                        lbt1.Enabled = false;
                        break;
                    default:
                        break;
                }
            }
    这下就对了,是吧是跟9L的有点像,确实是,就是把  那个2改为1就行了,三个linkButton都在同一列故是用Cell[1]
      

  9.   

    你应该判断一下是否是datarow