using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class d28 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
//------------------------------------------------------------------------
int[] num = { 5, 10, 40, 20 };
string[] headerTxt = { "選取", "序號", "標題", "時間" };
if (e.Row.RowType == DataControlRowType.Header)
{
for (int i = 0; i < GridView1.Columns.Count; i++)
{
GridView1.Columns[i].ItemStyle.Width = new Unit(num[i], UnitType.Percentage);
GridView1.Columns[i].ItemStyle.HorizontalAlign = HorizontalAlign.Center;
GridView1.Columns[i].HeaderText = headerTxt[i];
}
}
//------------------------------------------------------------------------
//找出使用者點選gridview第幾列
int user_selected = Convert.ToInt32(Session["rowIndex"]);
//如果selectedIndex>=0表示點選了其中的某一列,並且來到的gridview的最後一列
if (user_selected >= 0 && e.Row.RowType == DataControlRowType.Pager)
{
//在點選列的下方,新增一列myrow,其中的-1指的是綁定資料的index,由於是空列,所以設定為-1
GridViewRow myrow = new GridViewRow((user_selected + 1), -1, DataControlRowType.DataRow, DataControlRowState.Selected);
//在新增的myrow列,新增第一格
TableCell cell1 = new TableCell();
cell1.BackColor = System.Drawing.Color.Yellow;
myrow.Cells.Add(cell1);
//在新增的myrow列,新增第二格,並且將後面的格子合併
TableCell cell2 = new TableCell();
cell2.BackColor = System.Drawing.Color.Yellow;
cell2.ColumnSpan = 3;
//避免第一次載入的時候,就看到gridview2,必須等到點選該列時,才將gridview2自訂控制項顯示出來
if (IsPostBack)
{
UserControl my_uc = new UserControl();
my_uc = (UserControl)LoadControl("~/UserControls/d28_userControl.ascx");
cell2.Controls.Add(my_uc);
myrow.Cells.Add(cell2);
// myrow.Visible = true;
//gridview1.controls[0]:所代表的是指gridview1的table,user_selected指的是選到的rowIndex, 加上gridview1的header 和該列的下方,所以要+2
GridView1.Controls[0].Controls.AddAt((user_selected+2), myrow);
}
}
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
Session["rowIndex"] = GridView1.SelectedIndex;
GridView1.DataBind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.SelectedIndex = -1;
Session["rowIndex"] = -1;
GridView1.DataBind();
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
GridView1.SelectedIndex = -1;
Session["rowIndex"] = -1;
GridView1.DataBind();
}
}
