在 aspx 视图中动态添加 HTML 换行符

问题描述 投票:0回答:1
c# html asp.net aspxgridview
1个回答
0
投票

好吧,我们实际上有“几个”选择。

但是,对于诸如基于某些数据更改框的颜色,或突出显示行,或连接一些值,更改粗体字体等的事情,基于网格视图的“数据”?

我会使用行数据绑定事件。您可以按照说明使用内联代码,甚至可以说内联 iff 语句。

所以,例如,你可以说使用这个:

<asp:Label ID="phonetic"   
   Style="word-wrap: normal; word-break: break-all;" 
   runat="server" 
   
   Text='<%# Eval("name_phonetic").ToString() == "" ? "" 
   : Eval("name_phonetic").ToString() + @"<br/><br/>"   %>'>
 </asp:Label>
 

现在,真的,上面的表达式足以将开发人员送到一些有软垫墙的医院。

因此,正如我所指出的,采用“标准”,即您的格式化代码基于某个值突出显示文本框,加粗文本,或者在这种情况下添加额外的换行符?

将所有此类代码放在“一个地方”、“一个点”和代码后面,而不是标记代码的“混乱丛林”。

所以,使用行数据绑定事件,然后这样做:

你的标签现在变成了这个:

<asp:Label ID="phonetic" 
    Style="word-wrap: normal; word-break: break-all;" 
    runat="server" >
</asp:Label>

然后在行数据绑定中,然后是:

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow) 
        {
            DataRowView rData = e.Row.DataItem as DataRowView;
            Label lPhon = e.Row.FindControl("phonetic") as Label;
            lPhon.Text = rData["name_phonetic"].ToString();
            if (lPhon.Text != "") 
                lPhon.Text += @"<br/>";
        }
    }

现在,那是“更多”代码,但它是您可以掌握、阅读并返回的代码。

在该代码中,您现在拥有用于绑定的完整数据行,因此可以访问和使用未在 GV 中显示的 EVEN 列。 (所以说对于一些折扣率,你可以然后颜色控制,或做任何事情)。如前所述,您使用了 GV 中未显示或未显示的数据行中的值。

因此,这两种方法中的任何一种都可以工作,但是您也可以“启动”一个用于特殊格式的代码存根,并且所有这些代码都可以“始终”放置在一个位置,并且您作为开发人员现在将放置在一个位置“知道”在未来寻找。

© www.soinside.com 2019 - 2024. All rights reserved.