2017-04-20 27 views
1

我有一个动态创建的表。此表只有一个字段类别。从每个类别我创建一个按钮。我希望每个按钮都可以重定向到特定的页面。每个页面的aspx都有一个类别名称.aspx。 有没有办法一次动态地做到这一点?Selected Case创造了这个,但是这并不适合我,因为我将创建和删除类别每动态重定向到PostBackUrl的另一页ASP.NET

Using myCommand As New SqlCommand("SELECT kategorie FROM Kategorie", myConn) 
      Using myDataReader As SqlDataReader = myCommand.ExecuteReader 

       While myDataReader.Read() 

        Dim tRow As New TableRow() 
        tblKategorie.Rows.Add(tRow) 

        Dim tCell As New TableCell() 
        tRow.Cells.Add(tCell) 

        Dim buttKategorie As New Button 
        buttKategorie.Text = myDataReader("kategorie") 
        buttKategorie.CssClass = "buttKategorie" 

        **'Here I tried to do it > ????** 
        'buttKategorie.PostBackUrl = myDataReader("kategorie.aspx") 

        tCell.Controls.Add(buttKategorie) 

       End While 
      End Using 
End Using 

回答

2

XAML时间:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
    <asp:panel runat="server" id="container"></asp:panel>  
</asp:Content> 

C#:
我用了列表,但你可以改变它。

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim source As New List(Of String) 
    source.Add("page1.aspx") 
    source.Add("page2.aspx") 
    For Each tmp As String In source 
     Dim btn As New Button 
     btn.Text = tmp 
     btn.ID = tmp 
     AddHandler btn.Click, AddressOf Me.Button_Click 
     container.Controls.Add(btn) 
    Next 
End Sub 

Private Sub Button_Click(sender As Object, e As EventArgs) 
    Dim btn As Button = CType(sender, Button) 
    Response.Redirect(btn.Text) 
End Sub