以编程方式向字符串添加动态数量的空格
Programatically adding a dynamic number of spaces to a string
我有一个树视图控件,我希望它看起来像这样:
只需摆弄 css 和一个文本字符串,我实际上已经很接近了。我只是需要一些帮助才能越线。
这是我用来生成树视图的代码:
void FillTree_Parent()
{ // fills the parent view of the Tree Action items
//int RoleID = Convert.ToInt32(ddlRole.SelectedValue);
using (SqlConnection con4 = new SqlConnection(ConfigurationManager.ConnectionStrings["PBRConnectionString"].ConnectionString))
{
try
{
SqlCommand cmd2 = new SqlCommand("SELECT [ACCT_GRP], [ACCT_GRP_PK], [ACTIVE_FLG], [LOAD_BY], [LOAD_TIMESTAMP] FROM [ACCT_GRP_LIST] ORDER BY [ACCT_GRP] ASC", con4);
SqlDataAdapter da = new SqlDataAdapter(cmd2);
DataSet PrSet = new DataSet();
da.Fill(PrSet, "ACCT_GRP");
TreeViewAccts.Nodes.Clear();
foreach (DataRow dr in PrSet.Tables[0].Rows)
{
DateTime date = DateTime.Parse(dr["LOAD_TIMESTAMP"].ToString());
string formatted = date.ToString("MM/dd/yyyy");
TreeNode tnParent = new TreeNode();
// Here is our focus
tnParent.Text = dr["ACCT_GRP"].ToString().Replace("'", "''") +
" ········· " + "Active:" + dr["ACTIVE_FLG"].ToString() +
" ········· " + "Loaded On:" + formatted + "";
//
tnParent.Value = dr["ACCT_GRP_PK"].ToString();
tnParent.PopulateOnDemand = true;
tnParent.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeViewAccts.Nodes.Add(tnParent);
FillTree_Child(tnParent, tnParent.Value);
}
}
catch (Exception ae)
{
Response.Write(ae.Message);
}
}
}
在标记为“// Here is our focus”的块中,我需要做的是弄清楚如何获得第一组“·········”以生成动态数字空格基于 dr["ACCT_GRP"] 最多可以有 75 个字符这一事实。所以,我需要确定 dr["ACCT_GRP"] 的长度,用 75 减去它,然后生成那么多的空格。
谁能帮我解释一下这个逻辑?另外,作为一个额外的问题,如果有人能告诉我如何使用空格而不是“·”,我将不胜感激;每当我多次点击空格键并将其括在引号中时,它就像那些空格根本不存在一样。
int len = dr["ACCT_GRP"].Length;
int paddingLength = 75 - len;
string padding = new string('.', paddingLength);
我从你的问题中得知你正在浏览器中查看此内容(你提到 CSS)。 HTML 规范告诉浏览器将所有连续的白色 space 折叠成一个 space。您可以改用 "non-breaking space" 字符。可以写成“&nbs p;”在 HTML(减去 s 和 p 之间的 space)或使用其 Unicode 表示 00 A0。所以你的 C# 代码变成:
int len = dr["ACCT_GRP"].Length;
int paddingLength = 75 - len;
string padding = new string('\u00A0', paddingLength);
我有一个树视图控件,我希望它看起来像这样:
只需摆弄 css 和一个文本字符串,我实际上已经很接近了。我只是需要一些帮助才能越线。
这是我用来生成树视图的代码:
void FillTree_Parent()
{ // fills the parent view of the Tree Action items
//int RoleID = Convert.ToInt32(ddlRole.SelectedValue);
using (SqlConnection con4 = new SqlConnection(ConfigurationManager.ConnectionStrings["PBRConnectionString"].ConnectionString))
{
try
{
SqlCommand cmd2 = new SqlCommand("SELECT [ACCT_GRP], [ACCT_GRP_PK], [ACTIVE_FLG], [LOAD_BY], [LOAD_TIMESTAMP] FROM [ACCT_GRP_LIST] ORDER BY [ACCT_GRP] ASC", con4);
SqlDataAdapter da = new SqlDataAdapter(cmd2);
DataSet PrSet = new DataSet();
da.Fill(PrSet, "ACCT_GRP");
TreeViewAccts.Nodes.Clear();
foreach (DataRow dr in PrSet.Tables[0].Rows)
{
DateTime date = DateTime.Parse(dr["LOAD_TIMESTAMP"].ToString());
string formatted = date.ToString("MM/dd/yyyy");
TreeNode tnParent = new TreeNode();
// Here is our focus
tnParent.Text = dr["ACCT_GRP"].ToString().Replace("'", "''") +
" ········· " + "Active:" + dr["ACTIVE_FLG"].ToString() +
" ········· " + "Loaded On:" + formatted + "";
//
tnParent.Value = dr["ACCT_GRP_PK"].ToString();
tnParent.PopulateOnDemand = true;
tnParent.SelectAction = TreeNodeSelectAction.SelectExpand;
TreeViewAccts.Nodes.Add(tnParent);
FillTree_Child(tnParent, tnParent.Value);
}
}
catch (Exception ae)
{
Response.Write(ae.Message);
}
}
}
在标记为“// Here is our focus”的块中,我需要做的是弄清楚如何获得第一组“·········”以生成动态数字空格基于 dr["ACCT_GRP"] 最多可以有 75 个字符这一事实。所以,我需要确定 dr["ACCT_GRP"] 的长度,用 75 减去它,然后生成那么多的空格。
谁能帮我解释一下这个逻辑?另外,作为一个额外的问题,如果有人能告诉我如何使用空格而不是“·”,我将不胜感激;每当我多次点击空格键并将其括在引号中时,它就像那些空格根本不存在一样。
int len = dr["ACCT_GRP"].Length;
int paddingLength = 75 - len;
string padding = new string('.', paddingLength);
我从你的问题中得知你正在浏览器中查看此内容(你提到 CSS)。 HTML 规范告诉浏览器将所有连续的白色 space 折叠成一个 space。您可以改用 "non-breaking space" 字符。可以写成“&nbs p;”在 HTML(减去 s 和 p 之间的 space)或使用其 Unicode 表示 00 A0。所以你的 C# 代码变成:
int len = dr["ACCT_GRP"].Length;
int paddingLength = 75 - len;
string padding = new string('\u00A0', paddingLength);