如何在c#中编辑GridView Edit中的链接按钮可见性

时间:2011-08-24 16:05:13

标签: c# gridview linkbutton

我想知道如何在GridViewEdit中编辑LinkBut​​ton的可见性:

我的aspx-File中的GridView的ItemTemplate中有一个名为“lbtnActivateConfig”的LinkBut​​ton:

<ItemTemplate>
  <asp:LinkButton ID="lbtnActivateConfig" runat="server"
       OnClick="GridViewDeactivate" Visible="false">Deaktivieren
  </asp:LinkButton>
</ItemTemplate>

现在我想更改LinkBut​​ton的可见性,并使用此方法:

protected void GridViewEdit(object sender, GridViewEditEventArgs e)
    {
        GridViewRow row = this.ConfigGridView.Rows[e.NewEditIndex];

        LinkButton buttonActivate = (LinkButton)ConfigGridView.Rows[row.RowIndex].FindControl("lbtnActivateConfig");
        buttonActivate.Visible = true;
    }

在调试时捕获LinkBut​​ton似乎设置了它的可见性。但LinkBut​​ton仍然是隐形的。

如果我将按钮更改为在aspx-File中可见并尝试在方法中更改它,则相同。

对我来说,似乎aspx-File总是在最后执行并覆盖方法中的更改。这是正确的吗?如何更改方法内的可见性?有什么想法吗?

谢谢你,再见!

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

protected void GridViewEdit(object sender, GridViewEditEventArgs e)
{
    GridViewRow row = this.ConfigGridView.Rows[e.NewEditIndex];
    (ConfigGridView.Rows[row.RowIndex].FindControl("lbtnActivateConfig")).Visible = true;      
} 

您无需将其强制转换为LinkButton,因为所有控件都具有Visible属性。当您将FindControl设置为变量时,变量由值而不是引用设置,这意味着您不是指实际控件。