//占位符控件 protected System.Web.UI.WebControls.PlaceHolder phPlaces; privatevoid InitPlaces() { LiteralControl lbl; string msg; LinkButton btn; phPlaces.Controls.Clear(); msg ="Type: {0}, Place: {1}. From {2}/{3} to {4}/{5}. Description: {6}."; foreach (DataRow row in ds.Tables["Existing"].Rows) { lbl =new LiteralControl(); // Format the msg variable with values in the row lbl.Text =string.Format(msg, row["Type"], row["Place"], row["MonthIn"], row["YearIn"], row["MonthOut"], row["YearOut"], row["Name"]); btn =new LinkButton(); // Assign a unique ID to the control btn.ID = row["LapseID"].ToString().Replace("-", string.Empty); btn.Text ="Delete"; // Pass the LapseID when the link is clicked btn.CommandArgument = row["LapseID"].ToString(); // Attach the handler to the event btn.Command +=new CommandEventHandler(OnDeletePlace); // Add the controls to the placeholder phPlaces.Controls.Add(lbl); phPlaces.Controls.Add(btn); phPlaces.Controls.Add(new LiteralControl("<br>")); } // Hide the panel if there are no rows if (ds.Tables["Existing"].Rows.Count >0) pnlExisting.Visible =true; else pnlExisting.Visible =false; }