2015-06-26 4 views
0

Я использую ASP.net 4.5 с VB.net. (Пример C# также может работать, я его преобразую)Чтение данных из DataTable - ASP.NET

У меня есть код ниже, который я использую для заполнения элемента Repeater Control в моей форме.

Private pgdArticles As New PagedDataSource 

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     pgdArticles = GetData() 
     blogRepeater.DataSource = pgdArticles 
     blogRepeater.DataBind() 

    End Sub 


    Private Function GetData() As PagedDataSource 

     Dim pg As New PagedDataSource 

     Dim conn As SqlConnection 
     conn = New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString) 

     Dim cmd As New SqlCommand("usp_MyProc", conn) 

     Dim da As New SqlDataAdapter() 
     da.SelectCommand = cmd 
     Dim dt As New Data.DataTable() 
     da.Fill(dt) 
     pg.DataSource = dt.DefaultView 

     Return pg 

    End Function 

Он прекрасно работает с использованием ретранслятора, но я хочу, чтобы прочитать эти данные и заполнить метки на моей форме не использовать повторитель. Что-то вроде ниже ....

Мои данные в моей таблице .................

My data in my table

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

     pgdArticles = GetData() 

     If pgdArticles.ID = 1 Then 
      lblName1 = pgdArticles.Name 'This will be value Mike 
      lblValue1 = pgdArticles.Value 'This will be value 250 
     End If 

     If pgdArticles.ID = 2 Then 
      lblName2 = pgdArticles.Name 'This will be value Ben 
      lblValue2 = pgdArticles.Value 'This will be value 400 
     End If 

    End Sub 

Есть ли другой способ сделать это тогда? Примеры кода C# или VB.NET будут в порядке.

+0

вы можете использовать элемент управления содержимым сервера и генерировать динамический HTML из кода позади вместо повторителя. for ex div.InnerHtml = "

  • name
  • " –

    +0

    Dont хотите использовать это, я просто хочу заполнить разные ярлыки, расположенные по всей странице. – Etienne

    +0

    Почему вы хотите это с помощью ярлыков? –

    ответ

    1

    Код:

    Public Property dtArticles As DataTable 
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load 
    
        dtArticles = GetData() 
    
        For I As Integer = 0 To dtArticles.Rows.Count - 1 
         Dim row As DataRow = dtArticles.Rows(I) 
         Dim label As Label = Page.FindControl(String.Format("Name{0}", I)) 
         label.Text = String.Format("{0} ({1})", row("Name"), row("Value")) 
        Next 
    
    End Sub 
    
    Private Function GetData() As DataTable 
    
        Dim conn As New Data.SqlClient.SqlConnection(ConfigurationManager.ConnectionStrings("myConnectionString").ConnectionString) 
        Dim cmd As New SqlCommand("usp_MyProc", conn) 
    
        Dim da As New SqlDataAdapter() 
        da.SelectCommand = cmd 
    
        Dim dt As New Data.DataTable() 
        da.Fill(dt) 
    
        Return dt 
    
    End Function 
    

    Html:

    <asp:Label ID="Name0" runat="server" /> 
    <asp:Label ID="Name1" runat="server" /> 
    <asp:Label ID="Name2" runat="server" /> 
    
    +0

    Пожалуйста, отредактируйте ваш предыдущий ответ, не публикуйте еще один –

    +0

    Это не то, что я хочу, мне нужно заполнить каждую метку правильным идентификатором, и они не сидят в одном месте в html. – Etienne

    +0

    ** Panagiotis **, извините, я удалил первый ответ. ** Etienne **, я изменил код, пожалуйста, просмотрите еще раз. –