Сделайте ссылку недоступной при некоторых условиях в asp.net

1

В моем файле ascx у меня есть datagrid в этом формате:

<Columns>
                <asp:TemplateColumn SortExpression="companyName" HeaderText="Company Name">
                    <HeaderStyle Width="40%" />
                    <ItemTemplate>
                        <table cellSpacing="0" cellPadding="0" width="100%" border="0">
                            <tr>
                                <td width="95%">
                                    <asp:LinkButton CssClass="LinkButton" id="btnView" Runat="server" CommandName="ViewDetails" CommandArgument="<%# GetViewUrl((System.Data.Common.DbDataRecord)Container.DataItem) %>">
                                        <span ID="SpanTitle" Runat="server">
                                            <%# DataBinder.Eval(Container.DataItem,"companyName") %>
                                        </span>
                                    </asp:LinkButton>
                                    <asp:Label CssClass="DGNormal" ID="lblStatus" Runat="server" text='<%# StatusToText((int) DataBinder.Eval(Container.DataItem,"statusId")) %>'/>
                                    <asp:Image visible='<%# (bool) DataBinder.Eval(Container.DataItem,"WMCCMRated") %>' ID="imgProfiled" Runat="server" ImageUrl="~/images/WMCCMRated.gif" AlternateText="This company has been competency profiled by WMG" />
                                    <asp:Image Visible='<%# !(Convert.IsDBNull(DataBinder.Eval(Container.DataItem,"feedback")))%>' ID="feedback" Runat="server" ImageUrl="~/images/feedback.gif" AlternateText="The number of feedback this company has been received is ->" ImageAlign="Bottom" Height="18px" Width="12px"/>
                                    <asp:Label CssClass="NormalBold" ID="lblFeedback" Runat="server" text='<%# DataBinder.Eval(Container.DataItem,"feedback") %>' ForeColor="Navy"/>
                                </td>
                            </tr>
                            <tr>
                                <td>

Таким образом, имя_компании будет доступно для просмотра. Теперь, в моем коде, я проверяю это условие:

// bind the data to the datagrid
            dgCompanies.PageSize = pageSize;
            dgCompanies.DataSource = rdr;

               int j = 0;
               foreach (DataGridItem item in dgCompanies.Items)
               {
                   HtmlGenericControl name = (HtmlGenericControl)item.Cells[j].FindControl("SpanTitle");
                   string drstring = name.InnerHtml.Trim();
                   if (checkfunction(drstring))
                   {

Здесь, если условие выполнено, я хочу, чтобы ссылка была неаккуратной, как я мог ее архивировать?

Теги:
datagrid

2 ответа

0

Поместите внутри вашей функции serveride внутри, если следующий код

btnView.Enabled = false;

по вашему запросу

((System.Web.UI.WebControls.LinkButton)item.FindControl("btnView")).Enabled= false;
  • 0
    тогда как buttonView = true снова? потому что некоторые ссылки должны работать, только внутри, если условие делает его недоступным для клика
  • 0
    да, тогда вы можете установить его в true
Показать ещё 4 комментария
0

Это отключает ссылку

/// <summary>
/// Disables the link button.
/// </summary>
/// <param name="linkButton">The LinkButton to be disabled.</param>
public static void DisableLinkButton(LinkButton linkButton)
{
    linkButton.Attributes.Remove("href");
    linkButton.Attributes.CssStyle[HtmlTextWriterStyle.Color] = "gray";
    linkButton.Attributes.CssStyle[HtmlTextWriterStyle.Cursor] = "default";
    if (linkButton.Enabled != false)
    {
       linkButton.Enabled = false;
    }

    if (linkButton.OnClientClick != null)
    {
        linkButton.OnClientClick = null;
    }
}

проверьте это также как включить/отключить-linkbutton

  • 0
    Я не хочу отключать все ссылки. Только один в состоянии, если выполняется, другие ссылки должны работать нормально.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню