Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置与DataTable字段值对应的GridView行的文本_C#_Asp.net_Gridview_Datatable - Fatal编程技术网

C# 设置与DataTable字段值对应的GridView行的文本

C# 设置与DataTable字段值对应的GridView行的文本,c#,asp.net,gridview,datatable,C#,Asp.net,Gridview,Datatable,我有一个GridView,它的数据源来自一个数据库表。我想根据数据库值在行中显示不同的文本。 这里,对于计费列,如果字段BILLING_DTLS_STATUS的值为1,则应显示NORTH COUNTER,值为2,则应显示SOUTH COUNTER,值为3,则应显示MAIN COUNTER 此外,我还有一个按钮btnBilled,如果字段BILL_STATUS的值为1,则按钮文本应为DISABLE,如果为0,则文本应为ENABLE <asp:GridView ID="GridView1"

我有一个GridView,它的数据源来自一个数据库表。我想根据数据库值在行中显示不同的文本。 这里,对于计费列,如果字段BILLING_DTLS_STATUS的值为1,则应显示NORTH COUNTER,值为2,则应显示SOUTH COUNTER,值为3,则应显示MAIN COUNTER

此外,我还有一个按钮btnBilled,如果字段BILL_STATUS的值为1,则按钮文本应为DISABLE,如果为0,则文本应为ENABLE

<asp:GridView ID="GridView1"
    runat="server"
    AutoGenerateColumns="False" 
    OnRowDataBound="GridView1_RowDataBound">            
    <Columns>
        <asp:TemplateField HeaderText="S No." ItemStyle-Width="15%" >
            <ItemTemplate>
                <%#Container.DataItemIndex+1 %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField
            DataField="BILLING_DTLS_STATUS"
            HeaderText="Billed For">
            <ItemStyle VerticalAlign="Top" />
        </asp:BoundField>
        <asp:BoundField DataField="BILLING_SUB_TYPE"
            HeaderText="Billing Type">
            <ItemStyle VerticalAlign="Top" />
        </asp:BoundField>
        <asp:BoundField DataField="BILLIG_AMT"
            HeaderText="Billing Amount">
            <ItemStyle VerticalAlign="Top" />
        </asp:BoundField>
        <asp:TemplateField HeaderText="STATUS">
        <ItemTemplate >
            <asp:Button ID="btnBilled" Text="" runat="server" />
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:GridView>
我的两分钱:-

如果只有两个值,可以使用三元运算符。 另外,我更喜欢将显示文本从数据库查询更改为客户端 它自己,林克
为什么不创建一个基于计费DTLS状态返回正确类型的方法

然后在GridView中可以获得正确的值

<asp:TemplateField HeaderText="Billing Status">
    <ItemTemplate>
        <%# Get_Billing_Type(Convert.ToInt32(Eval("BILLING_DTLS_STATUS"))) %>
    </ItemTemplate>
</asp:TemplateField>
对于只有2个选项的按钮,可以使用三元运算符。您还可以使用上面提到的相同技术并为其创建一个方法

<asp:TemplateField HeaderText="Billing Status">
    <ItemTemplate>
        <asp:Button ID="Button1" runat="server" Text='<%# Convert.ToBoolean(Eval("BILL_STATUS")) ? "DISABLE" : "ENABLE" %>' />
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Billing Status">
    <ItemTemplate>
        <%# Get_Billing_Type(Convert.ToInt32(Eval("BILLING_DTLS_STATUS"))) %>
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Billing Status">
    <ItemTemplate>
        <asp:Button ID="Button1" runat="server" Text='<%# Convert.ToBoolean(Eval("BILL_STATUS")) ? "DISABLE" : "ENABLE" %>' />
    </ItemTemplate>
</asp:TemplateField>