我基本上有一个绑定到gridview的实体,并且有一个像这样的字符串值:'data1 | data2 | data3 | data4'。
有没有比我目前使用的方法更有效或更好的方法呢?
<asp:Repeater runat="server" ID="rptCentres">
<ItemTemplate>
<h2><%#Eval("Centre.Name") %> ( <%#Eval("Entities.Count") %> )</h2>
<asp:GridView runat="server" ID="dgShotlist" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<itemtemplate>
<p><%#Eval("ImageContainer.Title").ToString().Split('|')[0]%></p>
</itemtemplate>
</asp:TemplateField>
<asp:TemplateField>
<itemtemplate>
<p><%#Eval("ImageContainer.Title").ToString().Split('|')[1]%></p>
</itemtemplate>
</asp:TemplateField>
<asp:TemplateField>
<itemtemplate>
<p><%#Eval("ImageContainer.Title").ToString().Split('|')[2]%></p>
</itemtemplate>
</asp:TemplateField>
<asp:TemplateField>
<itemtemplate>
<p><%#Eval("ImageContainer.Title").ToString().Split('|')[3]%></p>
</itemtemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
答案 0 :(得分:3)
假设您仅将数据显式绑定到转发器:
<asp:Repeater runat="server" ID="rptCentres">
<ItemTemplate>
<h2><%# Eval("Centre.Name") %>(<%# Eval("Entities.Count") %>)</h2>
<asp:GridView runat="server"
ID="dgShotlist"
AutoGenerateColumns="false"
DataSource=<%# ((string)Eval("ImageContainer.Title")).Split('|') %>>
<Columns>
<asp:TemplateField>
<ItemTemplate>
<p><%# Container.DataItem %></p>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:Repeater>
在这里,我指定内部GridView
的数据源作为由|
符号拆分的标题,该符号应使用string[]
类型((string)Eval("ImageContainer.Title")).Split('|')
。