为什么拆分函数不会在 GridView 中抛出意外结果

Why the split function is not throwing unexpected result in GridView

我使用的是 gridview,因为我采用了 2 列(1 个 TemplateField 和 1 个 BoundField)的 GridView。

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

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

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

第 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.

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

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