我目前正在进行数据绑定:
<asp:TemplateField HeaderText="Priority" SortExpression="priority">
<ItemTemplate>
<asp:Label Visible="true" runat="server" ID="priorityLabel" Text='<%# bind("numberTemplatePriority") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
但是,我想首先得到这个值:&lt;%#bind(“numberTemplatePriority”)%&gt;,这将带来一个整数,根据该值,我想显示一个等效的字符串。例如:如果它是4号,我想显示“非常重要”。
我不想修改sql查询,因为它在应用程序的其他部分中使用。
GridView数据源是一个数据集,“numberTemplatePriority”是其列之一。
提前致谢。
答案 0 :(得分:1)
尝试,
<asp:Label
Visible="true"
runat="server"
ID="priorityLabel"
Text='<%# Eval("numberTemplatePriority").ToString()=="1" ? "Very Important" :
Eval("numberTemplatePriority").ToString()=="2" ? "Something" : "Nothing" %>'
/>
答案 1 :(得分:1)
您可以使用gridview的RowDataBound事件。试试这个。
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Label lbl = (Label)e.Row.FindControl("priorityLabel");
int number = Convert.ToInt32(lbl.Text);
if (number == 4)
{
lbl.Text = "Very Important";
}
}
}
希望这有帮助
答案 2 :(得分:0)
尝试以下内容:
<%# (Eval("numberTemplatePriority") == "Very Important") ? Response.Write("Very Imprortant") : Response.Write("Not Important") %>
但我认为你需要在sql查询上处理这种情况。这种实现并不是那么好主意。这将使您很难长期维护您的应用程序。