1. GridView的主索引鍵屬性:(注意:GridView必須設定好DataKeyNames也就是主索引鍵欄位)(P10-4)
(1).GridView.SelectedIndex 相當於 GridView.SelectedRow.RowIndex //顯示你選了哪一列
(2).GridView.SelectedValue 相當於 GridView.SelectedDataKey.Value //顯示你選的那一列的主索引鍵"值"
2. 當有多個Primary Keys:
(1)GridView.SelectedDataKey.Values[0].ToString(); //有多個主索引鍵,抓取第一個索引鍵的值
(2)GridView.SelectedDataKey.Values[1].ToString();(注意有s代表多個)
(3)GridView.SelectedValue.ToString();//表示只有單一個索引鍵
3.透過session來傳遞多個primary key(p10-8)(搭配SqlDataSource小精靈)
(1)同一支程式拉進兩個GridView,並且勾選樞紐選取模式(這樣就會自動產生選取了)
(2)替第一個GV設定DataKeysName : id,title
(3)因為GridView被選取的話就會觸發SelectedIndexChanged(配合Sqldatasource會觸發ed結尾的,自己寫ADO.NET會觸發ing結尾的)
後置程式碼如下:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Label1.Text = "第一個主索引鍵:" + GridView1.SelectedDataKey.Values[0].ToString();
Label2.Text = "第二個主索引鍵:" + GridView1.SelectedDataKey.Values[1].ToString();
//用第一個Session 存下第一個PrimaryKey
Session["s_id"] = Convert.ToInt32(GridView1.SelectedDataKey.Values[0]);
//用第二個Session 存下第二個PrimaryKey
Session["s_title"] = GridView1.SelectedDataKey.Values[1].ToString();
}
(4) 再來就是設定第二個GridView如何接這些session值然後去資料庫找出相對應資料。
4.透過session來傳遞多個primary key(p10-14)(自己寫ADO.NET(用DataSet產生資料))
後置程式碼:
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection Conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString);
SqlDataAdapter myAdapter = new SqlDataAdapter("select * from test where id = " + GridView1.SelectedDataKey.Values[0] + " and title = '" + GridView1.SelectedDataKey.Values[1] + "'", Conn);
DataSet ds = new DataSet();
try
{
myAdapter.Fill(ds,"test");
GridView2.DataSource = ds;
GridView2.DataBind();
}
catch(Exception ex)
{
Response.Write(ex.ToString());
}
}
留言列表