如何使用旁边的按钮将数据显示到表中?

时间:2018-02-25 21:03:39

标签: c# asp.net gridview data-binding

这是我想要实现的目标:

我想在表格中显示所有类别,并在其旁边添加包含按钮的列。单击此按钮后,它应重定向到另一个页面,显示有关该类别的更多详细信息。

知道怎么办?

到目前为止,这就是我所做的:

  protected void Page_Load(object sender, EventArgs e)
{
   SqlConnection conn = new SqlConnection(@"Data Source=NASHIISHEENA;Initial Catalog=HousekeepingPortal_DB;Integrated Security=True");
   SqlCommand cmd = new SqlCommand("Select Cat_Name from tblCategory",conn);
   conn.Open();
   SqlDataReader dr = cmd.ExecuteReader();

   GridView1.DataSource = dr;
   GridView1.DataBind();
   conn.Close();
}

1 个答案:

答案 0 :(得分:-1)

我无法向您提供您想要实现的完整代码,但我会给您一般的想法。

首先 - 要创建表格,您可以使用GridViewListView。另一种选择是使用普通List,而不是创建Grid / DockPanel作为每个项目的DataTemplate。我认为这个解决方案是最简单的,所以我将在此进行演示。

我将向您展示如何使用ListView实现它并维护MVVM架构。请注意,调用像您这样的事件并不像MVVM那样,我建议使用Command代替。

首先,您需要ViewModel上的某些内容,它解释了您当前正在查看的页面类型并将其绑定到实际视图。我不知道你到底想要什么,所以我无法向你展示这部分的实际代码。

Command上创建一个名为OpenPageCommand的{​​{1}},通过ListView参数获取其所需的项目/页面/任何对象。

至于object部分和命令绑定:

ListBox

<ListBox ItemsSource="{Binding Categories}"> <ListBox.ItemTemplate> <DataTemplate> <DockPanel> <Button DockPanel.Dock="Right" Width="150" Content="Show detalils" Command="{Binding DataContext.OpenCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding }"/> <TextBlock Text="{Binding Name }"/> </DockPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> GridView的解决方案应该类似。请注意,在这些情况下,您可能需要使用ListView将按钮放在其中一个collumb中。

如果您有任何疑问,请在评论中说明。