以编程方式向字符串添加动态数量的空格

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);