Как создать метку или текст в gridview, чтобы перезаписать определенные ячейки для определенных условий? - PullRequest
0 голосов
/ 23 января 2019

Я работаю с asp.net и создал вид сетки, как показано ниже.Когда для текста состояния задано определенное состояние, я хочу охватить все ячейки, кроме текста состояния, в этой строке предупреждением.

Данные поступают из строки MQ и управляются отдельнойучебный класс.Я думаю, что событие с привязкой к строке может быть подходящим способом.Я думаю, что-то вроде кода ниже

Gridview:

 <asp:GridView runat="server" ID="gridDisc"  GridLines="none" AutoGenerateColumns="false" CellPadding="2" HeaderStyle-backColor="#CCEEFF" OnRowDataBound="gridDisc_RowDataBound" >
            <AlternatingRowStyle CssClass="ep1" />
            <Columns>
                <asp:BoundField DataField="StatusText" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblPartDesc" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Qty" />
                <asp:BoundField DataField="UOI" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblStockDetails" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:Label ID="lblDealerInv" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:BoundField DataField="Listprice" />
                <asp:BoundField DataField="DiscCode" />
                <asp:BoundField DataField="OptiInd" />
                <asp:BoundField DataField="Weight" />
                <asp:BoundField DataField="ExchangeSurcharge" />
            </Columns>
        </asp:GridView>

Код позади:

protected void gridDisc_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            PartEnquiryLine line = (PartEnquiryLine)e.Row.DataItem;
            Label lbl = (Label)e.Row.FindControl("lblStatusDetails");
             if (line.StatusText == Text["280"])
            {
                lbl.Text = Text["290"]
            }

Но я не смог найти каких-либо указаний поКак создать ярлык, который будет прикрывать определенные ячейки в этой строке при запуске.Я могу быть далеко с этим, но как бы я это сделал?

1 Ответ

0 голосов
/ 23 января 2019

Вы можете сделать что-то вроде ниже.Я предполагаю, что вы хотели использовать lblStockDetails для отображения предупреждающего сообщения, поскольку в вашем виде сетки нет столбца lblStatusDetails.

Используйте следующий код в части if, если вы хотите, чтобы предупреждающее сообщение охватывалонесколько столбцов.

if (e.Row.RowType == DataControlRowType.DataRow)
    {
       PartEnquiryLine line = (PartEnquiryLine)e.Row.DataItem;
       Label lbl = (Label)e.Row.FindControl("lblStockDetails");
       if (line.StatusText == Text["280"])
       {
               lbl.Text = Text["290"]

                e.Row.Cells[2].Visible = false;
                e.Row.Cells[3].Visible = false;
                e.Row.Cells[4].ColumnSpan = 9;
                e.Row.Cells[5].Visible = false;;
                e.Row.Cells[6].Visible = false;
                e.Row.Cells[7].Visible = false;
                e.Row.Cells[8].Visible = false;
                e.Row.Cells[9].Visible = false;;
                e.Row.Cells[10].Visible = false;
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...