close

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());
}

}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()