使用c#/ asp.net显示数据库中的超链接列表

Ned*_*Ned 3 c# asp.net

我是一个asp.net / C#新手,我正在尝试创建一个从数据库中生成的非常简单的菜单。到目前为止,我已经设法从数据库中提取表并将其提取到数据表中,再从那里提取到数组中。

我的问题是我还没有弄清楚如何在页面循环中使用数据(菜单根据用户类型而变化)。我尝试使用,<% =Array %>但我似乎无法在while / for循环甚至分配行中使用它。

也许我正在以错误的方式进行攻击,我想我的问题基本上是这样的:我如何使用我从动态页面中的数据库(名称,URL)收集的数据?

这是我当前的代码背后:

    public string[] keep = new string[100];
public void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        //Response.Write("response in postback");
        getMenu();
    }
}

void getMenu()
{
    Response.Write("response in getmenue");
    SqlConnection con = new SqlConnection();
    con.ConnectionString = "server=(local);database=PhilipsMaterials;Integrated Security=SSPI;";
    con.Open();
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    string sql = "Select * from Materials";
    SqlDataAdapter da = new SqlDataAdapter(sql, con);
    da.Fill(ds);
    dt = ds.Tables[0];
    DataRow[] drowpar = dt.Select();
    int i = 0;
    foreach (DataRow dr in drowpar)
    {
        keep[i] = dr["Material Name"] as string;
        i = i + 1;
    }

    con.Close();

}
Run Code Online (Sandbox Code Playgroud)

谢谢。

Ank*_*ain 5

您只需要使用数据控件,例如gridview或Repeater,然后可以将数据集绑定到这些控件的datasource属性。从我的角度来看,中继器将是动态菜单的最佳数据控件。

这是标记为中继器

  <asp:Repeater ID="Rept" runat="server">
    <HeaderTemplate>
    <ul>
    </HeaderTemplate>
    <ItemTemplate>
    <li><a href='<%#Eval("url") %>'><%#Eval("names") %></a></li>
    </ItemTemplate>
    <FooterTemplate>
    </ul>
    </FooterTemplate>
Run Code Online (Sandbox Code Playgroud)

这是绑定数据集的代码

Rept.DataSource = ds;
Rept.DataBind();
Run Code Online (Sandbox Code Playgroud)