Default.aspx ( 紅色部分為 Detail Tables):
<telerik:RadGrid ID="MainGrid" runat="server" AutoGenerateColumns="false"首先,我先隨便建立一個函式,讓它可以回傳自訂的 DataTable :
OnDetailTableDataBind="MainGrid_DetailTableDataBind" Skin="Office2007">
<MasterTableView>
<DetailTables>
<telerik:GridTableView runat="server" Name="DetailGrid">
<Columns>
<telerik:GridTemplateColumn UniqueName="ID"
HeaderText="ID">
<ItemTemplate>
<asp:Label runat="server"
Text='<%# Eval("Educational Background") %>'>
</asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Name"
HeaderText="Name">
<ItemTemplate>
<asp:Label runat="server"
Text='<%# Eval("Speciality") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Age"
HeaderText="Age">
<ItemTemplate>
<asp:Label runat="server"
Text='<%# Eval("Interest") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</telerik:GridTableView>
</DetailTables>
<Columns>
<telerik:GridTemplateColumn UniqueName="ID" HeaderText="ID">
<ItemTemplate>
<asp:Label ID="grid_lblID" runat="server"
Text='<%# Eval("ID") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Name" HeaderText="Name">
<ItemTemplate>
<asp:Label ID="grid_lblName" runat="server"
Text='<%# Eval("Name") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="Age" HeaderText="Age">
<ItemTemplate>
<asp:Label ID="grid_lblAge" runat="server"
Text='<%# Eval("Age") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
DataTable GetCustomizeDataTable()接著在網頁讀取 ( Page Load ) 時,將自訂資料表,設定給 MainGrid 為資料來源。
{
// 自訂資料內容
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Age");
dt.Columns.Add("Educational Background");
dt.Columns.Add("Speciality");
dt.Columns.Add("Interest");
dt.Rows.Add(new object[] { 1, "David_Kuo", 23,
"University", "Programming", "Basketball" });
dt.Rows.Add(new object[] { 2, "Kimberly", 23,
"University", "Sleep", "eat" });
return dt;
}
protected void Page_Load(object sender, EventArgs e)最後要在 DetailTableDataBind 事件中設定 Detail Tables 的資料來源。
{
if (!IsPostBack)
{
// 設定資料來源
MainGrid.DataSource = GetCustomizeDataTable();
}
}
// 在 MainGrid 中 DetailTable 資料建構時觸發當程式碼都完成後,就會呈現如以下圖片。
protected void MainGrid_DetailTableDataBind(object source,
GridDetailTableDataBindEventArgs e)
{
GridDataItem item = (GridDataItem)e.DetailTableView.ParentItem;
switch (e.DetailTableView.Name)
{
case "DetailGrid":
{
// 取得 MainGrid 內中 ID 為 grid_lblID 的控制項
string strID = ((Label)item.FindControl("grid_lblID")).Text;
// 設定 DetailTable 篩選條件
string strSelect = string.Format("ID={0}", strID);
e.DetailTableView.DataSource =
GetCustomizeDataTable().Select(strSelect);
break;
}
}
}
回目錄
回首頁
沒有留言 :
張貼留言