我正在使用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列中的值拆分两次?
答案 0 :(得分:1)
Split
会在给定char
或string
的所有匹配项上拆分字符串。所以你的字符串将分为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")