我有一个GridView,它的DataSource来自数据库表。我想根据数据库值在行中显示不同的文本。
在这里,对于 Billed For 列,如果字段BILLING_DTLS_STATUS
的值为1,则应显示“NORTH COUNTER”,值为2,应显示“SOUTH COUNTER”,值为3显示“主要计数器”。
我还有一个按钮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>
我最初更改了BILLING_DTLS_STATUS
的值,然后填充了GridView,但我认为这种方法不正确。另外,如何根据BILL_STATUS
字段的值设置按钮文本。
public void Get_Billing_Type()
{
try
{
DataTable dt = new DAL_Set_Billing_Type().Get_Billing_Type();
foreach (DataRow row in dt.Rows)
{
switch(row[0].ToString())
{
case "1":
{
row["BILLING_DTLS_STATUS"] = "NORTH COUNTER";
break;
}
case "2":
{
row["BILLING_DTLS_STATUS"] = "SOUTH COUNTER";
break;
}
case "3":
{
row["BILLING_DTLS_STATUS"] = "MAIN COUNTER";
break;
}
}
}
GridView1.DataSource = dt;
GridView1.DataBind();
}
catch (Exception) { }
}
答案 0 :(得分:1)
为什么不创建一个基于layer
layer = ModuleLayer.empty();
然后在GridView中,您可以获得正确的值。
BILLING_DTLS_STATUS
对于只有2个选项的按钮,您可以使用三元运算符。您也可以使用与上述相同的技术并为其创建方法。
public string Get_Billing_Type(int type)
{
if (type == 1)
{
return "NORTH COUNTER";
}
else if (type == 2)
{
return "SOUTH COUNTER";
}
else if (type == 3)
{
return "MAIN COUNTER";
}
else
{
return "NO COUNTER";
}
}
答案 1 :(得分:0)