【发布时间】:2015-05-25 10:18:08
【问题描述】:
我需要根据某些条件显示删除按钮。
ASPX:
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="btnDelete" runat="server" CommandName="Delete"
ImageUrl="~/Images/Delete.gif" Visible="false" />
</ItemTemplate>
</asp:TemplateField>
代码隐藏:
protected void gvL3App_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataTable dtInactiveCodes = DataRepository.getInactiveCodes();
string[] strInactive = dtInactiveCodes.AsEnumerable()
.Select(row => row.Field<string>("Code")).ToArray();
foreach (var value in strInactive)
{
ImageButton btnDelete= (ImageButton)e.Row.FindControl("btnDelete");
btnDelete.Visible = true;
}
}
这里
dtInactiveCodes数据表返回值如145、248、268、478等。现在,gridview 的第一列将具有这些数据表返回值。我需要检查这些值并显示删除。
但删除按钮对所有行都是可见的,并且不适用于上述代码。
谁能帮我解决这个问题?
【问题讨论】:
-
我认为你需要在
if (value != string.empty){ btnDelete.Visible = true; }内执行此操作foreach循环 -
就这样吧,
Visible=<%# Eval("show").toString() == "true" ? "false" %>。如果它取决于所选表中的键或值。 -
@VinodKumar
Eval("show")是什么? -
@RahulNikate
Eval是您使用从绑定数据源获取值的东西。阅读msdn.microsoft.com/en-us/library/4hx47hfe%28v=vs.110%29.aspx 了解更多信息。 -
@RahulNikate - 我尝试了你的建议,但还是一样。有没有其他方法可以让它工作。