这是我想要实现的目标:
我想在表格中显示所有类别,并在其旁边添加包含按钮的列。单击此按钮后,它应重定向到另一个页面,显示有关该类别的更多详细信息。
知道怎么办?
到目前为止,这就是我所做的:
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();
}
答案 0 :(得分:-1)
我无法向您提供您想要实现的完整代码,但我会给您一般的想法。
首先 - 要创建表格,您可以使用GridView
或ListView
。另一种选择是使用普通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中。
如果您有任何疑问,请在评论中说明。