列表视图->;通过编码显示数据
本文关键字:编码 显示 数据 视图 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*;
}
}
}