2013-04-08 45 views
0

我想用内部字符串空间空间,我用这个代码:如何使用内部字符串

var lst = Article.Select(a => new {a.ID, Name = "  " + a.Name}).ToList(); 
gv.DataSource = lst.ToList(); 
gv.DataBind(); 

,但其没有工作,与此代码显示名称=““名称。

,并使用此代码:

var lst = Article.Select(a => new {a.ID, Name = "     " + a.Name}).ToList(); 
gv.DataSource = lst.ToList(); 
gv.DataBind(); 

,并使用此代码显示名称= “         ” 名称。

请帮我

编辑:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false"> 
<Columns> 
... 
<asp:BoundField DataField="Name" HeaderText="Name" ReadOnly="True" ItemStyle-Width="300px" ItemStyle-HorizontalAlign="Right"></asp:BoundField> 
... 
</asp:GridView> 

EDIT2:

答:

Link1

Link2

谢谢大家。

+0

THX。但它不起作用 – 2013-04-08 16:43:28

+0

我认为这里的问题是文本输出到HTML不关心额外的空白。如果多个' '不工作,那么您可能需要应用CSS边距/填充。 – 2013-04-08 16:44:16

+0

什么是gv?你可以控制它的填充? – 2013-04-08 16:44:47

回答

2

这项工作?

string constructor从一个字符构成的字符串repeat计数:

var lst = Article.Select(a => new {a.ID, Name = new string(' ', 8) + a.Name}) 
       .ToList(); 

UPDATE 1

组属性,HtmlEncode=False

<asp:BoundField DataField="Name" HtmlEncode="False" /> 

和包围<pre>标签

var lst = Article.Select(a => new {a.ID, Name = "<pre>  </pre>" + a.Name}) 
       .ToList(); 
+1

'+ 1'更干净的例子:) – MethodMan 2013-04-08 16:47:34

+0

我把这个第一个绑定到gridview控件,但不工作。 – 2013-04-08 16:49:20

+0

看到我更新的答案。 – 2013-04-08 16:56:42

1

我假设gv是一个asp.net gridview控件,并且在浏览器中显示所有空白符合并。

因此,尝试这样的事情

<asp:BoundField DataField="Name"> 
<ItemStyle CssClass="NameCol" /> 
</asp:BoundField> 

,并在你的CSS

..NameCol 
{ 
padding-left:50px; 
} 
+0

是的。 OP最终可能需要右对齐。 – 2013-04-08 17:00:54

+0

q&d选项可能是' – 2013-04-08 17:03:44

+0

thx。但它不适合我的工作 – 2013-04-08 17:05:26

0

试试这个样本的方式

a.Name.ToString().PadLeft(10," ") 
  • 必须使用的ToString()

编辑试试这个

a.Name.PadLeft(10,' ') 
+0

我使用代码,但错误:LINQ to Entities无法识别方法'System.String PadLeft(Int32,Char)'方法,并且此方法无法转换为存储表达式。 – 2013-04-08 17:25:01

+0

查看我的编辑答案 – 2013-04-08 17:35:46

+0

FWIW如果你只是填充空格,真的没有理由使用这种超载。 – 2013-04-08 17:37:21

相关问题