实现效果:在主表里选中某行,从表里得出该行的详情。
方法1:代码实现。
在页面上放一个GridView,一个DetailView。数据绑定GridView并且要设置主键,然后在SelectedIndexChanged事件写代码:选择发生变化时,DetailView也改变为相应的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;
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
public
partial
class
MasterDetail2 : System.Web.UI.Page
![](http://jeffamy.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
protected void Page_Load(object sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
{
if (!Page.IsPostBack)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
{
string SQL = "SELECT * FROM [Orders]";
GridView1.DataSource = Binding(SQL);
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
GridView1.DataKeyNames = new string[]
{ "OrderID" };
GridView1.DataBind();
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
{
string OrderID = Convert.ToString(GridView1.SelectedValue);
string SQL = "SELECT * FROM [OrderDetails] WHERE [OrderID]='" + OrderID + "'";
DetailsView1.DataSource = Binding(SQL);
DetailsView1.DataBind();
}
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
/**//// <summary>
/// 执行SQL语句返回一个数据表
/// </summary>
/// <param name="SQL">所要执行的SQL语句</param>
/// <returns>DataTable</returns>
protected DataTable Binding(string SQL)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
{
SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrings["AppConnectionString1"].ConnectionString);
DataTable dt=new DataTable();
SqlDataAdapter myAdapter = new SqlDataAdapter(SQL, myConn);
myAdapter.Fill(dt);
return dt;
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
}
}
方法2:设置控件属性实现
在页面上放一个GridView,一个DetailView,然后每个对应一个数据源。只要在DetailView的数据源的SelectCommand里使用GridView的SelectedValue作为参数,即可实现。
<
SelectParameters
>
<
asp:ControlParameter
ControlID
="EmployeesGridView"
Name
="AddressID"
PropertyName
="SelectedValue"
Type
="Int32"
/>
</
SelectParameters
>
两种方法都很简单,方法2基本无代码实现,方法1控制更灵活。
方法1:代码实现。
在页面上放一个GridView,一个DetailView。数据绑定GridView并且要设置主键,然后在SelectedIndexChanged事件写代码:选择发生变化时,DetailView也改变为相应的Detail。
具体代码:
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](http://jeffamy.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://jeffamy.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fcc9d9d0245c1845cd20403690354e5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fcc9d9d0245c1845cd20403690354e5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fcc9d9d0245c1845cd20403690354e5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fcc9d9d0245c1845cd20403690354e5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/cdc54ae676c769b2f4bd87d4d4c23381.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f9027f2272a9ee0d8e12bc1d54bc90d0.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/b854634c0904529d4018c4c3336be836.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/0f62344004c9be677ffd0e7c56bdc751.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/3fcc9d9d0245c1845cd20403690354e5.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/07f1d9dce48fb5e12cdf173097fb449c.gif)
方法2:设置控件属性实现
在页面上放一个GridView,一个DetailView,然后每个对应一个数据源。只要在DetailView的数据源的SelectCommand里使用GridView的SelectedValue作为参数,即可实现。
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ae73525c6c12e8b5c79b7381d63248a9.gif)
两种方法都很简单,方法2基本无代码实现,方法1控制更灵活。