如何在进行绑定时格式化gridview内容?

时间:2011-09-23 08:01:57

标签: asp.net gridview binding

我目前正在进行数据绑定:

<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”是其列之一。

提前致谢。

3 个答案:

答案 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查询上处理这种情况。这种实现并不是那么好主意。这将使您很难长期维护您的应用程序。