我想在table控件里嵌套2个GridView,2个都是用BUTTON点开,但是点开第二个gridview会把第一个顶掉,不能把table分2格,一格或者一行放1个吗..
GridView.DataBind();
TabelRow row = new TableRow();
TableCell cell = new TableCell();
cell.Controls.Add(GridView1);
row.Controls.Add(cell);
this.Table1.Controls.Add(row);那么另外一个GridView2我怎么放进Table1哦?..点BUTTON1就出GridView1,点BUTTON2就出GridView2。2个可以同时显示出来,而不是显示第二个就不显示第一个,我不知道如何动态分行,而且我还想判断有数据的GridView出现在第一行,假如没数据的就往后排(就好象排顺序一样,是否可以在取出时从DataSet里判断?)
GridView.DataBind();
TabelRow row = new TableRow();
TableCell cell = new TableCell();
cell.Controls.Add(GridView1);
row.Controls.Add(cell);
this.Table1.Controls.Add(row);那么另外一个GridView2我怎么放进Table1哦?..点BUTTON1就出GridView1,点BUTTON2就出GridView2。2个可以同时显示出来,而不是显示第二个就不显示第一个,我不知道如何动态分行,而且我还想判断有数据的GridView出现在第一行,假如没数据的就往后排(就好象排顺序一样,是否可以在取出时从DataSet里判断?)
cell.Controls.Add(GridView1);
row.Controls.Add(cell);
cell = new TableCell();
cell.Controls.Add(GridView2);
row.Controls.Add(cell);
参考
http://dotnet.aspx.cc/
http://blog.csdn.net/net_lover
this.Table1.Controls.Add(row);
TableCell cell = new TableCell();
row.Controls.Add(cell);
if(ViewState["第一个gridview存在"]!=null) && (bool)ViewState["第一个gridview存在"])
{
GridView g=createGridView1(); //一个函数返回GridView
cell.Controls.Add(g);
}
cell = new TableCell();
row.Controls.Add(cell); //增加第一行第二列。如果你想放到第二行,先增加新的row即可。
if(ViewState["第二个gridview存在"]!=null) && (bool)ViewState["第二个gridview存在"])
{
GridView g=createGridView2(); //一个函数返回GridView
cell.Controls.Add(g);
}
其次,在相关的“按钮”事件中,在创建GridView的时候还要将其存在标志记录入页面ViewState。以上就全部逻辑。
this.Table1.rows.Add(row);
再说一下“按钮”事件的写法,按照上面的逻辑,在按钮1的事件中可以写:
if(ViewState["第一个gridview存在"]!=null) && (bool)ViewState["第一个gridview存在"])
{
ViewState["第一个gridview存在"]=false;
this.Table1.Rows[0].Cells[0].Controls.Clear();
}
else
{
ViewState["第一个gridview存在"]=true;
this.Table1.Rows[0].Cells[0].Controls.Add(createGridView1());
}
protected void Page_Load(object sender, EventArgs e)
{ }
protected void Button1_Click(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection("Data Source=**;Persist Security Info=True;User ID=**;Password=**;Unicode=True");
conn.Open();
OracleCommand cmd = new OracleCommand("select * from kk", conn);
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
GridView1.DataSource = ds;
GridView1.DataBind();
TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Controls.Add(GridView1);
row.Cells.Add(cell);
this.Table1.Rows.Add(row);
}
protected void Button2_Click(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection("Data Source=**;Persist Security Info=True;User ID=**;Password=**;Unicode=True");
conn.Open();
OracleCommand cmd = new OracleCommand("select * from gg", conn);
OracleDataAdapter da = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
conn.Close();
GridView2.DataSource = ds;
GridView2.DataBind();
//如何动态填加新行,把GridView2 放在里面?
}
//我的格言是"不能做的最好的程序员,是不负责的程序员".
谢谢sp1234和孟大的指教.