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

发布于 2024-12-06 06:22:52 字数 561 浏览 1 评论 0原文

我目前正在做数据绑定:

<asp:TemplateField HeaderText="Priority" SortExpression="priority">
    <ItemTemplate>
         <asp:Label Visible="true" runat="server" ID="priorityLabel" Text='<%# bind("numberTemplatePriority") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

但是,我想先获取这个值:<%#bind("numberTemplatePriority")%>,这将带来一个整数,根据该值,我想显示一个等效字符串。例如:如果是数字4,我想显示“非常重要”。

我不想修改 sql 查询,因为它用于应用程序的其他部分。

GridView 数据源是一个数据集,“numberTemplatePriority”是其列之一。

提前致谢。

I am currently doing the data binding:

<asp:TemplateField HeaderText="Priority" SortExpression="priority">
    <ItemTemplate>
         <asp:Label Visible="true" runat="server" ID="priorityLabel" Text='<%# bind("numberTemplatePriority") %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

However, I would like to get this value first: <%# bind("numberTemplatePriority") %>, which will bring an integer, an according to that value, I want to show an equivalent string. For example: if it is number 4, I want to show "Very Important".

I wouldn't like to modify the sql query since it is used in other parts of the application.

The GridView datasource is a dataset and "numberTemplatePriority" is one of its columns.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

木緿 2024-12-13 06:22:52

尝试,

<asp:Label 
   Visible="true" 
   runat="server" 
   ID="priorityLabel" 
   Text='<%# Eval("numberTemplatePriority").ToString()=="1" ? "Very Important" : 
       Eval("numberTemplatePriority").ToString()=="2" ? "Something" : "Nothing" %>'
/>

Try,

<asp:Label 
   Visible="true" 
   runat="server" 
   ID="priorityLabel" 
   Text='<%# Eval("numberTemplatePriority").ToString()=="1" ? "Very Important" : 
       Eval("numberTemplatePriority").ToString()=="2" ? "Something" : "Nothing" %>'
/>
世俗缘 2024-12-13 06:22:52

您可以使用 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";
        }
    }
}

希望这有帮助

You can use RowDataBound event of the gridview.Try this.

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";
        }
    }
}

Hope this helps

顾忌 2024-12-13 06:22:52

尝试以下操作:

<%# (Eval("numberTemplatePriority") == "Very Important") ? Response.Write("Very Imprortant") : Response.Write("Not Important") %>

但我认为你需要在sql查询上处理这种情况。这种实现并不是一个好主意。这将使您的应用程序难以长期维护。

Give the following a try :

<%# (Eval("numberTemplatePriority") == "Very Important") ? Response.Write("Very Imprortant") : Response.Write("Not Important") %>

But I think you need to handle this kind of situations on the sql query. This kind of implementations are not so good idea. It will make it hard to maintain your application in a long term.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文