【问题标题】:Change Gridview color on condition ASP.NET在 ASP.NET 条件下更改 Gridview 颜色
【发布时间】:2018-07-23 06:15:52
【问题描述】:

我是asp.net 的新手,我有一个对我的职业生涯非常重要的项目,如果你们能帮助我,那就太棒了..

问题来了: 我正在使用这个gridview 代码,如果条件文本为“已接受”,我想将“ostatus”数据字段颜色更改为绿色,事情是我已经尝试了互联网上使用的所有内容并更改了超过 15 个代码隐藏但我只是可以不让它改变它只是不起作用的颜色。

这是gridview 代码

<asp:UpdatePanel runat="server" ID="srchuppan" UpdateMode="Always"><ContentTemplate>
<asp:GridView ID="GridView5" Style="margin-bottom: 2%; width: 100%; font-family: '0 Nazanin'; direction: rtl; background-color: white; margin: auto; text-align: center;" CssClass="table table-bordered resgrid" AutoGenerateColumns="false" runat="server">
<Columns>
    <asp:TemplateField ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="ردیف">
        <ItemTemplate>
            <%# Container.DataItemIndex+1 %>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="یادداشت">
        <ItemTemplate>
            <asp:ImageButton ID="btnpopup" runat="server" ToolTip='<%# Eval("ydd") %>' Width="40" Height="40" ImageUrl='<%# Eval("cmcount") %>' />

            <ajax:ModalPopupExtender ID="mpe" runat="server" TargetControlID="btnpopup" PopupControlID="pnlpopup"
                CancelControlID="btnCancelpopup" EnableViewState="true" DropShadow="true" />

            <asp:Panel ID="pnlpopup" CssClass="alertBox backpic" BackColor="White" runat="server" Width="400px">
                <h1>یادداشت خود را بنویسید</h1>
                <p style="color: red; font-size: 12px">(<%# Eval("order_id") %>)</p>
                <hr />
                <textarea id="YY" class="form-control" rows="3" style="width: 80%; margin: auto; font-size: 16px" runat="server"></textarea>
                <hr />
                <asp:Button ID="Yadsrch" OnClick="Yadsrch_Click" CssClass="DokmeDefBlue" runat="server" Text="ثبت یادداشت" />

                <asp:Button ID="btnCancelpopup" CssClass="DokmeDefRed" runat="server" Text="بستن" />
                <hr />
            </asp:Panel>
        </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField HeaderStyle-Width="2%" DataField="order_id" HeaderStyle-Font-Size="14" ItemStyle-Font-Size="13" HeaderText="کد سفارش" />
    <asp:BoundField DataField="date1" ItemStyle-Font-Size="13px" HeaderStyle-Font-Size="14" HeaderText="تاریخ ثبت" />
    <asp:BoundField HeaderStyle-Width="10%" DataField="name1" ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="نام سفارش دهنده" />
    <asp:BoundField HeaderStyle-Width="10%" DataField="your_tell" ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="تلفن" />
    <asp:BoundField DataField="P_name" ItemStyle-Font-Size="10" HeaderStyle-Font-Size="14" HeaderText="محصول" />
    <asp:BoundField DataField="pay_amount" ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="قیمت" />
    <asp:BoundField DataField="ostatus" ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="وضعیت" />
    <asp:TemplateField ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="تخفیف">
        <ItemTemplate>

【问题讨论】:

标签: c# asp.net gridview


【解决方案1】:

您应该使用“TemplateField”而不是使用“BoundField”来表示 ostatus

// replace this line
<asp:BoundField DataField="ostatus" ItemStyle-Font-Size="13" HeaderStyle-Font-Size="14" HeaderText="وضعیت" />

// use this
<asp:TemplateField HeaderText="وضعیت">
    <ItemTemplate>
        <span style="color: <%# (Eval("ostatus").ToString() == "Accepted") ? "green" : "black;" %>">
            <%# Eval("ostatus") %>
        </span>     
    </ItemTemplate>
</asp:TemplateField>

我已经使用三元运算符来检查 ostatus 是否“已接受”,如果是,则它将文本颜色更改为绿色,使用行内 CSS as style="color:green;"或样式=“颜色:黑色;”除此以外。 Eval 方法类似于 BoundField 标记访问有界数据源值。

有很多方法可以实现这一点,根据您目前的情况,这似乎很简单。

希望对你有帮助

【讨论】:

  • 老兄,你刚刚救了我的工作.. 祝你一切都好
猜你喜欢
  • 2020-03-16
  • 1970-01-01
  • 2018-06-19
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 2018-03-14
  • 2011-07-18
  • 2022-08-13
相关资源
最近更新 更多