我遇到了一些从后面的代码填充的GridView问题。 当我自己填写和绑定GridView1时,它工作正常。 然后我添加了代码来填充和绑定GridView2,它完全显示了GridView1的消失。 如果我注释掉GridView2.DataBind(),那么GridView1会再次出现。 我无法弄清楚发生了什么事。第一个GridView在代码中绑定第二个GridView时消失了
如果我为DropDownList或CheckBoxList更改GridView2,则会出现同样的问题,但是如果我将其更改为ListBox,则会出现GridView1。
protected void Page_Load(object sender, EventArgs e)
{
Int32 chaID = 20;
Int32 slots = 14;
String ConnectionString = WebConfigurationManager.ConnectionStrings["horizonConnectionString"].ToString();
String selectSQL = "SELECT chassis.ChassisName, srv.ChassisPosition, srv.ServerName, srv.ChassisID, srv.LocationID, chassis.LocationID AS ChaLocationID FROM srv INNER JOIN chassis ON srv.ChassisID = chassis.ChassisID WHERE (srv.ChassisID = '" + chaID + "') ORDER BY chassis.ChassisName, srv.ChassisPosition";
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand(selectSQL, con);
DataTable dt2 = new DataTable();
DataView dv = new DataView();
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(selectSQL, con);
sda.Fill(dt2);
dv = dt2.DefaultView;
}
catch (Exception)
{
}
try
{
int searchIndex;
dv.Sort = "ChassisPosition";
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Bay", typeof(Int32)));
dt.Columns.Add(new DataColumn("Server", typeof(String)));
for (int i = 0; i <= slots - 1; i++)
{
DataRow dr = dt.NewRow();
dr[0] = i + 1;
searchIndex = dv.Find(i + 1);
if (searchIndex != -1)
{
dr[1] = dv[searchIndex][2].ToString();
}
else
{
dr[1] = "-----";
}
dt.Rows.Add(dr);
}
this.GridView1.DataSource = dt;
GridView1.DataBind();
}
catch (Exception)
{
}
ConnectionString = WebConfigurationManager.ConnectionStrings["horizonConnectionString"].ToString();
selectSQL = "SELECT [ServerName], [ServerID], [FarmName], [LMG] FROM [srv] ORDER BY [ServerName]";
con = new SqlConnection(ConnectionString);
cmd = new SqlCommand(selectSQL, con);
DataTable dt3 = new DataTable();
try
{
con.Open();
SqlDataAdapter sda = new SqlDataAdapter(selectSQL, con);
sda.Fill(dt3);
this.GridView2.DataSource = dt3;
GridView2.DataBind();
}
catch (Exception)
{
}
}
没有理由绑定某些控件应该导致这种情况,这将表明您有布局问题。我建议你编辑你的问题,并在你的aspx文件中添加标记 - 当grid2有数据(因此有一些大小)时,它很可能覆盖了grid1或将它推到某个不应该有的地方。 – slugster 2011-05-05 08:31:14
请在页面加载事件中放置一个断点,然后跟踪数据源(GV1和GV2的数据表),并告诉我它是空的还是有数据的,或者发生了一些错误并发生异常,但是因为您尝试并抓住你无法完全认出它。 – 2011-05-05 09:27:10