N,V,C,D 是GridView的绑定列中的变量。
当我在GridView中显示此表格时,我希望显示 新建,已验证,已取消,已删除 。
我的GridView调用我的数据库中运行select Query的过程。我是否需要更改查询或添加GridView功能?我本身不想更改数据库值。
我该怎么做?
这是我现在的界限:
<asp:BoundField
DataField="Status"
HeaderText="Status"
SortExpression="Status" />
答案 0 :(得分:1)
这应该可以在C#中实现 - 至少如果你只想显示值而不是编辑它们。在CellFormatting事件中,您只需更改要显示的值。
private void gridview_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.Value.equals("N")) e.Value = "New";
else if(e.Value.equals("V")) e.Value = "Verified";
else if(e.Value.equals("C")) e.Value = "Cancelled";
else if(e.Value.equals("D")) e.Value = "Deleted";
}
我现在还没有C#,所以可能会有错别字。试试吧。
答案 1 :(得分:1)
在您的查询中,
Select
YourFields
case
when YourConditionField= 'N' then 'New'
when YourConditionField= 'V' then 'Verified'
when YourConditionField= 'C' then 'Cancelled'
when YourConditionField= 'D' then 'Deleted'
end,
from table
首先在GridView中,
您可以使用RowDataBound事件,您需要在网格视图中添加带有标签的模板列
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="labelResult" runat="server" />
</ItemTemplate>
</asp:TemplateField>
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType == DataControlRowType.DataRow)
{
string value = e.Row.Cells[0].Text;
Next find the label in the template field.
Label myLabel = (Label) e.Row.FindControl("myLabel");
if (value == "N")
{
myLabel.Text = "New";
}
else if (value == "V")
{
myLabel.Text = "Verified";
}
else if (value == "C")
{
myLabel.Text = "Cancelled";
}
else if (value == "D")
{
myLabel.Text = "Deleted";
}
}
}
答案 2 :(得分:0)
<asp:BoundField HeaderText="NEW" DataField="N" ></asp:BoundField>
答案 3 :(得分:0)
首先,我从默认的 BoundField 编辑了GridViewControl的状态列,并将其更改为 ItemTemplate
(我删除了自动生成的 EditItemTemplate 标记)
<asp:Label ID="lblStatus"
runat="server"
Text='<%# GetLabelText(Eval("status")) %>'>
</asp:Label>
然后在我的CS文件中,我添加了以下代码:
public string GetLabelText(object dataItem)
{
string text = "";
string val = dataItem as string;
switch (val)
{
case "N": text = "New";
break;
case "V": text = "Verified";
break;
case "F": text = "Fulfilled";
break;
case "C": text = "Cancelled";
break;
}
return text;
}
这就像一个魅力。谢谢你的帮助,伙计们!