Есть ли способ скрыть / показать кнопку ссылки на панели действий в зависимости от каждой строки
В настоящее время в моем коде есть метод, который обрабатывает функции показа или скрытия изображения в определенном столбце моего вида сетки в зависимости от значения данных. В этих же условиях я хочу скрыть или показать кнопку ссылки на панели действий, которую можно вызвать в каждой строке. Прямо сейчас я просто устанавливаю видимость кнопки ссылки, которую я хочу показать / скрыть в том же вышеупомянутом методе.
Но, конечно, происходит то, что он устанавливает видимость этой кнопки ссылки для всех экземпляров строк панели действий. например, если в последней строке в виде сетки эта функция активирована (как и в каждой строке), но там соблюдаются условия, чтобы видимость кнопок ссылок была ложной, тогда видимость ложна для всех строк.
Есть ли способ установить видимость отдельно для каждой строки?
некоторые из соответствующих ascx
<div class="actionPanelWrapper" id="actionPanelItem">
<div class="actionPanelOverlap"></div>
<div class="actionPanel">
<ul>
<li>
<asp:LinkButton runat="server" ID="linkbuttonDetails" Text="Details" OnClick="actionPanel_Click" CommandName="details"></asp:LinkButton></li>
<li>
<asp:LinkButton runat="server" ID="linkbuttonViewApprovers" Text="View Approvers" OnClick="actionPanel_Click" CommandName="viewapprovers"></asp:LinkButton></li>
<li>
<asp:LinkButton runat="server" ID="linkbuttonActionEdit" Text="View Attachments" OnClick="actionPanel_Click" CommandName="attachments"></asp:LinkButton></li>
<li>
<asp:LinkButton runat="server" ID="linkbuttonComments" Text="View / Add Comments" OnClick="actionPanel_Click" CommandName="Comments"></asp:LinkButton></li>
<%--<li><a onclick="actionPanelEventHistoryShow(this);" href="#">View Request History</a></li>--%>
<li> <asp:LinkButton ID="lbEventHistory" runat="server" Text="View Request History" OnClick="actionPanel_Click" CommandName="history"></asp:LinkButton> </li>
</ul>
</div>
</div>
Вызов метода ImageButton, в котором я добавил и попытался добавить настройку видимости на кнопку ссылки, как упоминалось
Visible='<%# GetStatusImageVisibility(Eval("StatusName").ToString(), Eval("IsRejected").ToString())%>'
Метод Codebehind
protected bool GetStatusImageVisibility(string Status, string IsRejected)
{
if (Status == "SAVED" && IsRejected != "1")
{
linkbuttonViewApprovers.Visible = false;
return false;
}
else
{
linkbuttonViewApprovers.Visible = true;
return true;
}
}
1 ответ
Вам понадобится дополнительная модель (сущность), представляющая строку, которая добавляет флаг видимости к каждой строке, и тогда вы сможете установить каждую строку отдельно. Если вам нужно передать данные в компоненты BL и DAL и из них, вы можете использовать пакет Nuget AutoMapper для сопоставления объектов разных слоев.
Надеюсь, поможет!