【问题标题】:Change link button fore color inside datalist on ItemDatabound更改 ItemDatabound 上数据列表内的链接按钮前景色
【发布时间】:2020-04-15 16:19:34
【问题描述】:

您好,我正在尝试根据网络、copychimp、复制器和驱动器空间的情况更改链接按钮的前景色 我试过这个:

protected void dgrMachines_ItemDataBound(object sender, DataListItemEventArgs e)
{
    string copychimp = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "copychimp"));
    string network = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "network_isconnected"));
    string drive = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "drive_alert"));
    string replicator = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "replicator_isactive"));

    if (network == "0" || copychimp == "Disconnected" || drive == "1" || replicator == "0")
    {
        e.Item.ForeColor = System.Drawing.Color.Red;  
    }
    else
    {
        e.Item.ForeColor = System.Drawing.Color.Green;  
    }
}

运气不好

但是当我尝试用户将 e.Item.ForeColor = System.Drawing.Color.Green; 更改为 e.Item. e.Item.BackColor = System.Drawing.Color.Green;
这行得通。 这是我的html:

<asp:DataList ID="dgrMachines" runat="server" RepeatColumns="5" OnSelectedIndexChanged="dgrMachines_SelectedIndexChanged" OnItemCommand="dgrMachines_ItemCommand" CellPadding="3" CssClass="col-12" OnItemDataBound="dgrMachines_ItemDataBound">
    <HeaderTemplate>
        <div class="container col-12" style="background-color: #333333">
            <b>
                <h2 class="text-center" style="color: white">Machines List</h2>
            </b>

        </div>

    </HeaderTemplate>
    <ItemTemplate>
        <asp:LinkButton ID="lblMachine" Text='<%# Eval("machine") %>' runat="server" Font-Size="Medium" ForeColor="Black"></asp:LinkButton>
       <%-- <asp:label ID="lblcopychimp" runat="server" Text='<%# Eval("copychimp") %>' />
        <asp:label ID="lblNetwork" runat="server" Text='<%# Eval("network_isconnected") %>' />
        <asp:label ID="lblreplicator" runat="server" Text='<%# Eval("replicator_isactive") %>' />
         <asp:label ID="lbldrive" runat="server"  Text='<%# Eval("drive_alert") %>' />--%>

        <%--   <%#Eval("machine")%> --%>
    </ItemTemplate>
</asp:DataList>

有人能帮我解决这个问题吗?

【问题讨论】:

    标签: c# asp.net .net datalist


    【解决方案1】:

    你需要使用FindControl:

    使用 FindControl 从代码隐藏中的函数访问控件 页面,访问另一个容器内的控件,或 其他不直接控制目标的情况 调用者可以访问。此方法仅在以下情况下才能找到控件 控件直接包含在指定的容器中;那就是 方法不会在内部的控制层次结构中进行搜索 控制。

    所以应该是这样的:

    LinkButton machineButton = (e.Item.FindControl("lblMachine") as LinkButton);
    if (machineButton != null)
    {
        machineButton.ForeColor = System.Drawing.Color.Red;
    }
    

    代替:

    e.Item.ForeColor = System.Drawing.Color.Red;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-04
      • 1970-01-01
      • 2016-12-11
      • 2018-01-06
      • 2017-04-12
      • 2013-09-20
      • 1970-01-01
      • 2014-05-23
      相关资源
      最近更新 更多