2012-03-30 78 views
0

我需要創建和填充來自另一個函數的3個字符串的ListView。我也希望能夠在運行時選擇多個數據段來更改它們的值(對於ListView,這是可能的嗎?)。如何創建和填充3列ListView?

我已經看過網上的所有信息,但我似乎無法找到任何。如果有人能夠給我一些關於最佳方式的見解,我會非常感激。

我也在GridView上看過一些東西。這對這個應用程序會更好嗎?

回答

1

我必須承認,我不知道你究竟在問什麼。但是,是的,你可以綁定3串到ListView從「其他功能」 :)未來

您可以處理ItemDataBound改變在listItems中值:

<asp:ListView runat="server" ID="ListView1" > 
    <LayoutTemplate> 
     <table> 
      <thead> 
       <tr> 
        <th> 
         A String 
        </th> 
       </tr> 
      </thead> 
      <tbody> 
       <asp:PlaceHolder runat="server" ID="itemPlaceholder" /> 
      </tbody> 
     </table> 
    </LayoutTemplate> 
    <ItemTemplate> 
     <tr> 
      <td> 
       <asp:Label ID="LblString" Text="<%# Container.DataItem %>" runat="server"></asp:Label> 
      </td> 
     </tr> 
    </ItemTemplate> 
</asp:ListView> 

頁面的代碼隱藏:

Public Class ListView 
    Inherits System.Web.UI.Page 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
     If Not IsPostBack Then 
      Me.ListView1.DataSource = OtherFuntion() 
      Me.ListView1.DataBind() 
     End If 
    End Sub 

    Private Function OtherFuntion() As IEnumerable(Of String) 
     Return {"String 1", "String 2", "String 3"} 
    End Function 

    Private Sub ListView1_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound 
     If e.Item.ItemType = ListViewItemType.DataItem Then 
      Dim lblString = DirectCast(e.Item.FindControl("LblString"), Label) 
      lblString.Text = New String(lblString.Text.Reverse.ToArray) 
     End If 
    End Sub 

End Class 

這只是反轉所有字符串。

+0

這個問題被標記爲vb.net,答案是關於asp.net – emaillenin 2012-04-22 05:35:19

+0

@emaillenin:這個語言有什麼技術?我同意OP是否標記了Winforms。 – 2012-04-22 11:33:03

+0

因爲你的答案似乎沒有回答這個問題..這裏是這個問題的實際答案 - http://stackoverflow.com/questions/2846462/vb-net-reading-from-listviews-with-multiple-columns – emaillenin 2012-04-22 17:10:22