ListView - >通过编码显示数据

时间:2016-05-07 09:30:51

标签: c# asp.net listview

我想从数据库中检索配方名称,需要在列表表单中显示数据。我已经添加了代码。但是我在模板中包含了什么。

来源

<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();
}

3 个答案:

答案 0 :(得分:0)

如果您只想显示数据,可以添加标签 &#39;&GT;

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

答案 1 :(得分:0)

您可以在模板中添加ASP.NET控件,然后使用Eval方法将bind更改为数据集中字段的值:

{{1}}

您可以在MSDN

上找到itemtemplates的文档

答案 2 :(得分:0)

您可以在<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*;
        }
    }
}