假设源是某种数据库,所以底线是您必须提取该数据并使用代码对其进行格式化。
我的意思是,将整个列加粗很简单。但这有点麻烦。
好的,所以我们在表格中说这些数据:
我们的标记是这样的:
<asp:GridView ID="GridView1" runat="server" CssClass="table"></asp:GridView>
好的,我们加载网格的代码是这样的:
void LoadGrid()
{
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT SNumber, Place from tblJunk", conn))
{
conn.Open();
GridView1.DataSource = cmdSQL.ExecuteReader();
GridView1.DataBind();
}
}
}
我们现在有了这个:
现在,作为“一般”规则,格式化网格/列表视图等,我们可以尝试将消息服务器表达式注入到标记中,但是为了更好地设置颜色、突出显示和格式化,使用该控件的数据绑定事件。
所以,我们可以有这样的代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string txt = e.Row.Cells[0].Text;
// bold 5th from right
int rPos = txt.Length - 4;
txt = MyBold(txt, rPos, 1);
// bol last 3 chars
rPos = txt.Length - 2;
txt = MyBold(txt, rPos, 3);
e.Row.Cells[0].Text = txt;
}
}
现在我们的输出是这样的:
因此,对于更改状态和格式化网格(例如状态颜色等),以上是一般方法。
当然,我们需要一些名为 MyBold 的函数。
这样说:
string MyBold(string s,int iStart, int iEnd)
{
// ONE based postions - NOT 0 based!
iStart -= 1;
s = rLeft(s, iStart) + "<strong>" + s.Substring(iStart, iEnd) + "</strong>" +
s.Substring(iStart + iEnd, s.Length - (iStart + iEnd));
return s;
}
string rLeft(string s,int r)
{
return s.Substring(0, r);
}