我想知道是否有办法使用datakeynames访问不同表的主键,如果这些主键名称在这些表中不同。具有不同主键名称的不同表的DataKey名称
例如,我有一个名为Table1和Table2的表,其中主键分别是Table1ID和Table2ID。
我的最终目标是将两个表的内容组合成1个gridview,并为每一行生成一个超链接。所以,我的C#看起来是这样的:
protected void Page_Load(object sender, EventArgs e)
{
SqlCommand command = new SqlCommand("(SELECT Table1ID, Title FROM Table1" +
"UNION ALL SELECT Table2ID, Title FROM Table2)", connection);
GridView1.DataBind();
}
然后在我的Gridview_Databound方法,我经过和单独设置每行的超链接。问题是我如何访问Table1ID和Table2ID?在我的.aspx代码中,我可以将它设置为BoundField,因为DataField不会一致吗?我不能只做下面的事情,因为它忽略了Table2ID的权利?
<asp:BoundField DataField="Table1ID"/>
也许我需要使用templateField或东西吗?
我发现它只是在做Eva(“Table1ID”)。那么这将如何得到表2的pk? – Kevin 2013-05-08 21:44:48
更改您的查询如下 SELECT Table1ID,Title FROM Table1 UNION ALL SELECT Table2ID AS Table1ID,Title FROM Table2 – 2013-05-09 08:32:43
太棒了!我没有使用templatefield,但知道我可以做SELECT Table2ID AS Table1ID真的有帮助! – Kevin 2013-05-14 22:15:12