2011-02-09 34 views
2

我基本上有一個綁定到我的gridview的實體,並有一個像這樣的字符串值:'data1 | data2 | data3 | data4'。是否有更清潔/更有效的方式來分割字符串在gridview中使用?

有沒有比我目前使用的方法更高效或更好的方式做到這一點?

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

回答

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)Eval("ImageContainer.Title")).Split('|')string[]類型。

+0

所以容器是引用數據的保留字? – Andrew 2011-03-14 14:27:03

相關問題