2016-05-07 2 views
2

Я хочу получить имена рецептов из базы данных и отобразить данные в форме списка. Я добавил код позади. Но что я включаю в шаблон.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(); 
} 

ответ

0

вы можете добавить метку, если вы хотите отобразить только данные «>

или текстовое поле, если вы хотите редактировать данные

+0

Привет, мне нужно хотеть элемент списка, чтобы быть как ссылка на следующую страницу, которая будет отображаться подробная вид рецепта. Итак, что является желательной реализацией? Будет ли кнопка работать? Как я могу реализовать на прослушиватель item на этом ...? благодаря – user6302221

0

Вы можете добавить элементы управления ASP.NET в шаблон, а затем использовать команду Eval метод bind к значению поля из набора данных:

<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> 

Вы можете найти документацию для itemtemplates на MSDN

0

Вы можете поместить в <ItemTemplate> все, что вы хотите, чтобы отобразить в конкретном виде списка пункт.

Кроме того, я думаю, вам будет легче нанести на карту DataSet в соответствующую коллекцию Рецепт.

Например, в конструкторе:

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

Код Behind:

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*; 
     } 
    } 
} 
Смежные вопросы