我想知道是否有辦法使用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