我想知道如何在GridViewEdit中编辑LinkButton的可见性:
我的aspx-File中的GridView的ItemTemplate中有一个名为“lbtnActivateConfig”的LinkButton:
<ItemTemplate>
<asp:LinkButton ID="lbtnActivateConfig" runat="server"
OnClick="GridViewDeactivate" Visible="false">Deaktivieren
</asp:LinkButton>
</ItemTemplate>
现在我想更改LinkButton的可见性,并使用此方法:
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;
}
在调试时捕获LinkButton似乎设置了它的可见性。但LinkButton仍然是隐形的。
如果我将按钮更改为在aspx-File中可见并尝试在方法中更改它,则相同。
对我来说,似乎aspx-File总是在最后执行并覆盖方法中的更改。这是正确的吗?如何更改方法内的可见性?有什么想法吗?
谢谢你,再见!
答案 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
设置为变量时,变量由值而不是引用设置,这意味着您不是指实际控件。