實現效果:在主表里選中某行,從表里得出該行的詳情。
方法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;
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>
/// 執行sql語句返回一個數據表
/// </summary>
/// <param name="sql">所要執行的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:設置控件屬性實現
在頁面上放一個gridview,一個detailview,然后每個對應一個數據源。只要在detailview的數據源的selectcommand里使用gridview的selectedvalue作為參數,即可實現。
<selectparameters>
<asp:controlparameter controlid="employeesgridview" name="addressid" propertyname="selectedvalue"
type="int32" />
</selectparameters>
兩種方法都很簡單,方法2基本無代碼實現,方法1控制更靈活。
新聞熱點
疑難解答
圖片精選