在我的Winform
C#
应用程序中,我有DataGridView
与DataTable
绑定并且有很多记录。
我想以下列格式显示所选行(DataGridView
)的详细信息(参见图像)。我应该使用Control
或(Trick)来实现此目的。
换句话说:“表格的第一列应该有列名称,第二列应该有相应的值”
答案 0 :(得分:3)
我希望你会尝试在sql中使用PIVOT来使你的数据集看起来像上面的结果。您可以在DataSet中进行旋转(切换行和列),并将该数据集绑定到网格中。 见下面链接,它会帮助你..
http://codemaverick.blogspot.com/2008/02/transpose-datagrid-or-gridview-by.html
答案 1 :(得分:3)
通常情况下,我不会在 DataGridView 中执行此操作,它实际上是为了显示多条记录而您只想一次显示一条记录。我可以提出两种解决方法:
如果您知道要提前显示的字段的典型方法是在设计时布置一组单独的值显示标签和其他简单控件。这具有以下优点:
如果您不知道要在设计时显示的字段,或者不想打扰它们,请使用 PropertyGrid 控件而不是 DataGridView 。我从来没有尝试过使用DataTable作为数据源,但在C#/winforms: how to best bind a propertygrid and a System.Data.DataRow
看起来有一个很好的答案答案 2 :(得分:0)
这就是我要做的事情
答案 3 :(得分:0)
Visual Basic Power Packs
有一个DataRepeater
控件,可以在这些情况下使用。您可以按照您想要的方式设计每一行,并为每一行放置您想要放置的任何控件。
以下是演示如何使用此DataRepeater控件的视频:
您可以下载visual basic power pack:
http://www.microsoft.com/en-in/download/details.aspx?id=25169
另外,如果您使用的是Visual Studio 2013,请阅读此内容:
http://ntcoder.com/bab/2013/12/20/visualbasic-powerpack-missing-from-visual-studio-2013/
答案 4 :(得分:-1)
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>Reg_no</td>
<td>
<asp:Label runat="server" ID="lblreg_no" Text='<%# Eval("reg_no") %>' />
</td>
</tr>
<tr>
<td>Name</td>
<td>
<asp:Label runat="server" ID="lblname" Text='<%# Eval("name") %>' />
</td>
</tr>
<tr>
<td>DOB</td>
<td>
<asp:Label runat="server" ID="lbldob" Text='<%# Eval("dob") %>' />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
然后在您的代码中,您只需将其绑定为另一个容器。
Repeater1.datasource= "";
Repeater1.DataBind();