为什么split函数不会在GridView中引发意外结果

时间:2015-01-15 08:58:06

标签: c# asp.net gridview

我正在使用gridview,因为我已经使用了2列GridView(1个TemplateField& 1 BoundField)。

我将相同的数据列(名为“Stage”)绑定到两个网格列。

原始文字值:1;#Original u/s 139#Test

第1栏中的预期结果:1;#Original u/s 139#Test

Coulmn 2中的预期结果:Original u/s 139#Test

<asp:BoundField DataField="Stage" HeaderText="Original Value" SortExpression="Stage" />
<asp:TemplateField HeaderText="Using Split Function">
      <ItemTemplate>   
             <%# Eval("Stage").ToString().Contains("#") ? Eval("Stage").ToString().Split('#')[1] : Eval("Stage")  %>
      </ItemTemplate>
</asp:TemplateField>

结果:

Original Value           | Using Split Function

1;#Original u/s 139#Test | Original u/s 139  

在第2列中,结果应为 Original u/s 139#Test

我的问题是为什么split函数将第2列中的值拆分两次?

1 个答案:

答案 0 :(得分:1)

Split会在给定charstring的所有匹配项上拆分字符串。所以你的字符串将分为3个字符串:

[0] 1;
[1] Original u/s 139
[2] Test

您应该在第一次出现substring

时使用#
Eval("Stage").ToString().Contains("#") ? Eval("Stage").ToString().Substring(Eval("Stage").IndexOf('#') + 1) : Eval("Stage")