列表视图->;通过编码显示数据

本文关键字:编码 显示 数据 视图 gt 列表 | 更新日期: 2025-02-19 10:27:11

我想从数据库中检索配方名称,并需要以列表形式显示数据。我已经添加了后面的代码。但是我该在模板中包含什么呢。

<asp:ListView ID="ListView1" runat="server">
                    <ItemTemplate>
                    </ItemTemplate>
                </asp:ListView>

背后的代码

protected void Page_Load(object sender, EventArgs e)
{
    MySqlConnection con = new MySqlConnection("Server=localhost;Database=FreedomKitchen;Uid=root;Password=;");
    con.Open();
    MySqlCommand cmd = new MySqlCommand("select Recipe_Name from Recipes", con);
    MySqlDataAdapter da = new MySqlDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds, "Recipe_Names");
    ListView1.DataSource = ds;
    ListView1.DataBind();
}

列表视图->;通过编码显示数据

如果只想显示数据,可以添加标签'>

或文本框,如果您想编辑数据

您可以在模板中添加ASP.NET控件,然后使用Eval方法绑定到数据集中的字段值:

<asp:ListView ID="ListView1" runat="server">
    <ItemTemplate>
        <asp:Label ID="recipe_name" 
                   runat="Server" 
                   <!-- in eval you use the name of a field/property 
                        found in your collection or datatable    
                   -->
                   Text='<%#Eval("Recipe_Name") %>' />
    </ItemTemplate>
</asp:ListView>

您可以在MSDN 上找到项目模板的文档

您可以在<ItemTemplate>中放入要在特定列表视图项中显示的任何内容。

此外,我认为将DataSet映射到Recipe类型的适当集合中会更容易。

例如,在设计器中:

<ItemTemplate>
   <asp:Label runat="server" ID="lbl"></asp:Label>
</ItemTemplate>

代码背后:

void Page_Load(object sender, EventArgs e) 
{
    ...Code...
    ListView1.ItemDataBound += new EventHandler<System.Web.UI.WebControls.ListViewItemEventArgs>(ListView1_ItemDataBound);
}
private void ListView1_ItemDataBound(object sender, System.Web.UI.WebControls.ListViewItemEventArgs e)
{
    if (e.Item.ItemType == ListViewItemType.DataItem)
    {
        var recipeName = e.Item.DataItem as *Your_Recipe_Class_Type*;
        if (recipeName != null)
        {
            Label lbl = e.Item.FindControl("lbl");
            lbl.Text = recipeName.*DesiredProperty*;
        }
    }
}