實現(xiàn)效果:在主表里選中某行,從表里得出該行的詳情。
方法1:代碼實現(xiàn)。
在頁面上放一個GridView,一個DetailView。數(shù)據(jù)綁定GridView并且要設(shè)置主鍵,然后在SelectedIndexChanged事件寫代碼:選擇發(fā)生變化時,DetailView也改變?yōu)橄鄳?yīng)的Detail。
具體代碼:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class MasterDetail2 : System.Web.UI.Page
{
    PRotected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            string SQL = "SELECT * FROM [Orders]";
            GridView1.DataSource = Binding(SQL);
            GridView1.DataKeyNames = new string[] { "OrderID" };
            GridView1.DataBind();
        }
     }
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string OrderID = Convert.ToString(GridView1.SelectedValue);
        string SQL =  "SELECT * FROM [OrderDetails] WHERE [OrderID]='" + OrderID + "'";
        DetailsView1.DataSource = Binding(SQL);
        DetailsView1.DataBind();
    }
    /**//// <summary>
    /// 執(zhí)行SQL語句返回一個數(shù)據(jù)表
    /// </summary>
    /// <param name="SQL">所要執(zhí)行的SQL語句</param>
    /// <returns>DataTable</returns>
    protected DataTable Binding(string SQL)
    {
        SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
        DataTable dt=new DataTable();
        SqlDataAdapter myAdapter = new SqlDataAdapter(SQL, myConn);
        myAdapter.Fill(dt);
        return dt;
    }
}
方法2:設(shè)置控件屬性實現(xiàn)
在頁面上放一個GridView,一個DetailView,然后每個對應(yīng)一個數(shù)據(jù)源。只要在DetailView的數(shù)據(jù)源的SelectCommand里使用GridView的SelectedValue作為參數(shù),即可實現(xiàn)。
            <SelectParameters>
                <asp:ControlParameter ControlID="EmployeesGridView" Name="AddressID" PropertyName="SelectedValue"
                    Type="Int32" />
            </SelectParameters>
兩種方法都很簡單,方法2基本無代碼實現(xiàn),方法1控制更靈活。
新聞熱點
疑難解答